【力扣】20.有效的括号

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

【力扣】20.有效的括号_第1张图片

 题解:

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

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

代码如下:

class Solution {
public:
    bool isValid(string s) {
        //解题思路:([{这类的入栈,然后碰到其与之相对应的那就出栈,最后的情况那要是栈为空的情况就返回true.反之则返回false,不考虑([)]的这种情况,如果考虑,那就false了
        unordered_mappairs={
            {')','('},
            {']','['},
            {'}','{'}
        };
        stack 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();
    }
};

你可能感兴趣的:(力扣,leetcode,算法,职场和发展)