这题和最小括号匹配http://blog.youkuaiyun.com/littlestream9527/article/details/8022654不同,直接用栈就行,不用动态规划。感觉有点简单了。
bool isMatch(char c1,char c2)
{
if ((c1=='(' && c2 == ')')||(c1=='[' && c2 == ']')||(c1=='{' && c2 == '}'))
{
return true;
}
else
return false;
}
bool isValid(string s) {
stack<char> stk;
for (int i=0;i<s.length();i++)
{
if (stk.empty() || !isMatch(stk.top(),s[i]) )
{
stk.push(s[i]);
}
else
{
stk.pop();
}
}
if (stk.empty())
return true;
else
return false;
}