【力扣】20.有效的括号

2023-12-28 19:40:09

家人们,看这排序,一看就很简单,对吧?不对,我觉得还挺不是很容易的,哈哈哈。

?题解:

在看题目的时候,我一开始的解题思路就挺复杂的。题目说了”左括号必须以正确的顺序闭合“,我完美略过。

这道题是栈的常考题型,应该是吧。我们可以用哈希表的形式,键值对嘛,然后( [ { 这类的入栈,然后碰到其与之相对应的那就出栈,最后的情况那要是栈为空的情况就返回true.反之则返回false,不考虑( [ ) ]的这种情况,如果考虑,那就false了

代码如下:

class Solution {
public:
    bool isValid(string s) {
        //解题思路:([{这类的入栈,然后碰到其与之相对应的那就出栈,最后的情况那要是栈为空的情况就返回true.反之则返回false,不考虑([)]的这种情况,如果考虑,那就false了
        unordered_map<char,char>pairs={
            {')','('},
            {']','['},
            {'}','{'}
        };
        stack<char> stk;
        for(char c:s){
            if(pairs.count(c)){
                if(stk.empty()||stk.top()!=pairs[c])
                    return false;
                stk.pop();
            }else{
                stk.push(c);
            }
        }
        return stk.empty();
    }
};

文章来源:https://blog.csdn.net/qq_62649563/article/details/135276272
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。