leetcode_20.c++有效的括号

思路1:循环字符串,把左边各种括号压入栈。如果遇到右括号,则跟栈顶的符号比较。如果匹配,则栈顶元素出栈,不匹配则返回false

class Solution {
public:
    bool isValid(string s) {
        if(s=="")return true;
        stack<char> st;
        for(auto i:s){
            if(i=='(' || i=='{' || i=='[')
                st.push(i);
            else{
                if(st.size()==0 && (i==']'||i=='}'||i==')'))
                    return false;
                else if(i=='}' && st.top()!='{'  || i==']'&& st.top()!='[' || i==')' && st.top()!='(')
                    return false;
                else
                    st.pop();
            }
        }
        if(st.size()!=0)
            return false;
        return true;
    }
};
posted @ 2019-06-21 15:49  菜鸟创业梦  阅读(430)  评论(0编辑  收藏  举报