遇到左括号压栈,遇到右括号,判断是否为空,若栈空则不匹配,若栈顶元素与右括号匹配,则继续。最后判断栈是否为空,若为空,则匹配
class Solution {
public:
bool isValid(string s) {
stack<char>bracket;
int i;
if(s.length()==0)
return true;
for(i=0;i<s.length();i++)
{
if(s[i]=='('||s[i]=='{'||s[i]=='[')
bracket.push(s[i]);
if(s[i]==')'||s[i]=='}'||s[i]==']')
{
if(bracket.empty()||(bracket.top()=='('&&s[i]!=')')||(bracket.top()=='{'&&s[i]!='}')||(bracket.top()=='['&&s[i]!=']'))
return false;
else
bracket.pop();
}
}
if(bracket.empty())
return true;
else
return false;
}
};