自学内容网 自学内容网

代码随想录 栈与队列 test 3

20. 有效的括号 - 力扣(LeetCode)

括号序列错误时会出现三种情况:

左括号多余;右括号多余;左右括号不匹配。

解决思路:

遇到左括号,将对应的右括号入栈,遇到右括号则出栈顶元素。因此如果对于情况一,则所有括号遍历完之后有剩余,对于情况2,则此时栈为空,对于情况三,此时出栈元素与遍历的右括号不一致。

代码:

class Solution {
public:
    bool isValid(string s) {
        stack<char> st;
        for(int i = 0; i < s.size(); i++){
            if(s[i] == '(') st.push(')');
            else if(s[i] == '[') st.push(']');
            else if(s[i] == '{') st.push('}');
            else if(st.empty() || st.top() != s[i]) return false;
            else st.pop();
        }

        return st.empty();
    }
};


原文地址:https://blog.csdn.net/m0_73941517/article/details/145271627

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!