力扣刷题:22-有效的括号(20)

122 阅读1分钟

有效括号的规则首先是左括号和有括号的数量相等,对应的一对左右括号类型相对应,这个可以使用栈来验证括号的合理性,遇到左括号,进行入栈,遇到右括号,进行出栈,并且判断出栈的括号类型是否与遇到的右括号类型对应。

下面是C++语言实现的代码

class Solution {
public:
    bool isValid(string s) {
        stack<char> k;
        for (auto i : s) {
            switch (i) {
                case '(':
                case '[':
                case '{':
                    k.push(i);
                    break;
                default:
                    if (k.empty()) {
                        return false;
                    }
                    if (i == ')' && k.top() == '(') {
                        k.pop();
                        break;
                    }
                    if (i == ']' && k.top() == '[') {
                        k.pop();
                        break;
                    }
                    if (i == '}' && k.top() == '{') {
                        k.pop();
                        break;
                    }
                    return false;
            }
        }
        return k.empty();
    }
};