括号匹配

栈的应用,括号匹配。

经典做法是,遇左括号压入,遇右括号判断,和栈顶配对就继续,不配对或者栈空就错了。最后判断是否为空。

代码有些麻烦。

 

我是遇左括号压对应的右括号,最后判断代码就会很简单:相等即可。

class Solution {
public:
    bool isValid(string s) {
        int len=s.size();
        stack<char> st;
        for(int i=0;i<len;i++){
            if(s[i]=='(')st.push(')');
            else if(s[i]=='[')st.push(']');
            else if(s[i]=='{')st.push('}');
            else if(st.empty())return false;
            else if(st.top()!=s[i])return false;
            else st.pop();
        }
        return st.empty();
    }
};

 

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页