题解 | #有效括号序列#

有效括号序列

https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2

class Solution {
public:
 
    bool isValid(string s) {

        int n = s.size();
        if(n % 2 != 0 ) return false;
        stack<char> sta;
        for(int i = 0; i < n; i++){
            if(s[i] == '(' || s[i] == '{' || s[i] == '[') sta.push(s[i]);
            else{
                switch (s[i]) {
                    case ')':{ //最容易掉忽略的就是当检测到一个左括号时,忘记判断此时栈的状态
                        if(sta.empty() || sta.top() != '(') return false;
                        break;
                    }
                    case '}':{
                        if(sta.empty() || sta.top() != '{') return false;  
                        break;
                        
                    }
                    case ']':{
                        if(sta.empty() || sta.top() != '[') return false;
                        break;
                    }
                    default:
                    break;
                }
                  sta.pop(); 
            }

        }
        if(!sta.empty())
            return false;
        else
        return  true;
    }
};

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务