20230204 通过
20230207 通过
20230220 通过
20230302 通过

题目

约束

解法

class Solution {
public:
    bool isValid(string s) {
        int n = s.size();
        if (n % 2 == 1) {
            return false;
        }

        unordered_map<char, char> pairs = {
            {')', '('},
            {']', '['},
            {'}', '{'}
        };
        stack<char> stk;
        for (char ch: s) {
            if (pairs.count(ch)) {
                if (stk.empty() || stk.top() != pairs[ch]) {
                    return false;
                }
                stk.pop();
            }
            else {
                stk.push(ch);
            }
        }
        return stk.empty();
    }
};

1.stk.empty()一定要放在前面
2.最外层if是判断是左括号还是右括号的

posted on 2023-01-31 21:25  垂序葎草  阅读(12)  评论(0编辑  收藏  举报