今天学到了类似于对称的可以用到栈,比如()这个就是比较对称的,可能有人会问{}()这样的呢?我会把他作为两个对称的来看(感觉有点没有解释清楚orz,那就只可意会不可言传叭),献上代码
class Solution {
public:
bool isValid(string s)
{
stack<char>res;
for (int i = 0; i < s.length(); i++)
{
if (s[i] == '(' || s[i] == '[' || s[i] == '{')
res.push(s[i]);
if (s[i] == ')' || s[i] == ']' || s[i] == '}')
{
if (res.size() == 0)
return false;
switch (s[i])
{
case')':
{
if (res.top() == '(')
{
res.pop();
}
else
return false;
break;
}
case']':
{
if (res.top() == '[')
{
res.pop();
}
else
return false;
break;
}
case'}':
{
if (res.top() == '{')
{
res.pop();
}
else
return false;
break;
}
default:
break;
}
}
}
if (res.size() == 0)
return true;
else
return false;
}
};
求赞!!!