用栈,遍历string,左半边则入栈,右边则检查栈是否空和栈顶是否匹配。
vector<char>str;
bool isValid(string s) {
for(int i=0;i<s.size();i++)
{
if(s[i]==‘(‘||s[i]==‘{‘||s[i]==‘[‘)
str.push_back(s[i]);
else{
if(!str.empty()&&str.back()==get(s[i]))
{
str.pop_back();
}else{
return false;
}
}
}
return str.size()==0;
}
char get(char x)
{
if(x==‘}‘)
return ‘{‘;
else if(x==‘)‘)
return ‘(‘;
else
return ‘[‘;
}
原文:https://www.cnblogs.com/9527s/p/14615397.html