题目:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。
解题代码:
class Solution {
public: bool isValid(string s) {
if(s.size()%2)
return false;
vector<char> vec;
char a;
for(auto i:s)
{
if(i=='}'||i==')'||i==']')
{
if(!vec.empty())
a=vec[vec.size()-1];
else
return false;
if(i=='}'&&a!='{')
return false;
if(i==')'&&a!='(')
return false;
if(i==']'&&a!='[')
return false;
vec.pop_back();
}
else vec.push_back(i);
}
return vec.empty();
}
};