20. Valid Parentheses

Posted qvq-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20. Valid Parentheses相关的知识,希望对你有一定的参考价值。

放个数组,遍历,左方框就加,右方框就减

三个数放个数组,最后三个数都是0,才是true,为负立即false

但是看relate是stack这个标签

不是很懂怎么和栈结合

bool isValid(string s) {
    stack<char> st;
    for(char c : s){        //遍历s里的char
        if(c == (|| c == { || c == [){
            st.push(c);
        }else{
            if(st.empty()) return false; 
            if(c == ) && st.top() != () return false;
            if(c == } && st.top() != {) return false;
            if(c == ] && st.top() != [) return false;
            st.pop();
        }
    }
    return st.empty();

看起来好像是我弄错description的意思了,我以为{[}]也是对的,不好好看

技术图片

 


 

else if那一坨

要我肯定考虑== 而不是!=
bool isValid(string s) {
        stack<char> st;
        for(char c:s){
            if(c==(||c=={||c==[)
                st.push(c);
        else{
            if(st.empty())return false;
            if(c == ) && st.top() == () {st.pop();continue;}
            if(c == } && st.top() == {)  {st.pop();continue;}
            if(c == ] && st.top() == [)   {st.pop();continue;}
            else return false;   //但是少了这句就是错的,,,
} } return st.empty(); }

 



 

for那里是新知道的

所以搜一搜

the difference between for(char& c : s) and for(char c : s)?

新知识

技术图片

由图可知因为copy成本太高,直接modify s,快一点,如果想保护s就const 

以上是关于20. Valid Parentheses的主要内容,如果未能解决你的问题,请参考以下文章

20. Valid Parentheses做题报告

20_Valid-Parentheses

#20 Valid Parentheses

20. Valid Parentheses

#Leetcode# 20.Valid Parentheses

LeetCode - 20. Valid Parentheses