题目:
代码 : 栈模拟
class Solution {
public:
bool isValid(string s) {
stack<char> stk;
if(!s.size()) return true; //空串
else
{
for(int i=0;i<s.size();i++)
{
if(s[i]=='(' || s[i]=='[' || s[i]=='{') //左括号入栈
stk.push(s[i]);
else
{
if(stk.empty()) return false; //右括号时,栈空必定false
if(s[i]==')' && stk.top()=='(') stk.pop(); //对号
else if(s[i]==']' && stk.top()=='[') stk.pop();
else if(s[i]=='}' && stk.top()=='{') stk.pop();
else return false; //对不上左括号,必定是false
}
}
if(stk.empty()) return true; //栈空,true
else return false; //栈非空,false
}
}
};