题解 | 有效括号序列

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param s string字符串
     * @return bool布尔型
     */
    bool isValid(string s) {
        // write code here
        stack<char> stk;//匹配括号的问题用栈的方法
        int n = s.size();
        if (n % 2) {//若n为奇数则必不匹配
            return false;;
        }
        for (int i = 0; i < n; i++) {
            if (s[i] == '('  || s[i] == '[' || s[i] == '{') {
                stk.push(s[i]);
                continue;
            }
            if(stk.empty()) return false;//如果不是输入且栈为空,则不匹配
            if (s[i] == ')') {
                if (stk.top() == '(') {
                    stk.pop();
                    continue;
                } else {
                    return false;
                }
            }
            if (s[i] == ']') {
                if (stk.top() == '[') {
                    stk.pop();
                    continue;
                } else {
                    return false;
                }
            }
            if (s[i] == '}') {
                if (stk.top() == '{') {
                    stk.pop();
                    continue;
                } else {
                    return false;
                }
            }
        }
        if(stk.empty())
            return true;
        else
            return false;;
    }
};

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 11:47
点赞 评论 收藏
分享
06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
实习吐槽大会
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务