将括号进行匹配,如果是左括号压栈,如果是右括号,看栈顶元素是否与之匹配,如果不匹配或者空栈说明不对,如果匹配就弹栈,最后如果栈不是空的说明有没有匹配的括号,不对
class Solution {
public:
bool isValid(string s) {
stack<char> bracket;
for (auto &it: s) {
if (it == '[' || it == '{' || it == '(')
bracket.push(it);
else if (bracket.empty() || bracket.top() == '(' && it != ')' || bracket.top() == '[' && it != ']' ||
bracket.top() == '{' && it != '}')
return false;
else bracket.pop();
}
return bracket.empty();
}
};