有效括号的规则首先是左括号和有括号的数量相等,对应的一对左右括号类型相对应,这个可以使用栈来验证括号的合理性,遇到左括号,进行入栈,遇到右括号,进行出栈,并且判断出栈的括号类型是否与遇到的右括号类型对应。
下面是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();
}
};