423. 有效的括号序列

2018-01-25  本文已影响0人  李清依

423. 有效的括号序列

给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列。

您在真实的面试中是否遇到过这个题?

Yes

样例

括号必须依照 "()" 顺序表示, "()[]{}" 是有效的括号,但 "([)]"则是无效的括号。

标签

相关题目
思路:用栈解决这种符号匹配问题最为合适
AC代码:

bool isValidParentheses(string &s) {
        // write your code here
        int l=s.size();
        stack<char> buf;
        for(int i=0;i<l;i++){
            if(s[i]=='('||s[i]=='{'||s[i]=='['){
                buf.push(s[i]);
            }
            else if(s[i]==')'){
                if(!buf.empty()&&buf.top()=='('){ //当buf不为空且顶端为'('的时候
                    buf.pop();
                }else{
                    return false;
                }
            }
            else if(s[i]=='}'){
                if(!buf.empty()&&buf.top()=='{'){
                    buf.pop();
                }else{
                    return false;
                }
            }
            else {
                if(!buf.empty()&&buf.top()=='['){
                    buf.pop();
                }else{
                    return false;
                }
            }
        }
        return buf.empty();
    }
上一篇 下一篇

猜你喜欢

热点阅读