423. 有效的括号序列

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();
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容