题目
解答
很经典的题目,应该不用讲思路了吧......主要就是记得是:遍历到左括号的时候把右括号入栈,遍历到右括号的时候再判断其与栈顶的括号是否相等,还有就是注意什么时候需要判断一下栈是否为空。代码如下:
class Solution {
public:
bool isValid(string s) {
stack<char> rec;
for(int i = 0; i < s.length(); i++) {
if(s[i] == '(')
rec.push(')');
else if(s[i] == '[')
rec.push(']');
else if(s[i] == '{')
rec.push('}');
else {
if(rec.empty() || s[i] != rec.top())
return false;
rec.pop();
}
}
if(rec.empty())
return true;
return false;
}
};