Given a string containing just the characters ‘(‘, ‘)‘,
‘{‘, ‘}‘, ‘[‘ and ‘]‘, determine if the input string is valid.
The brackets must close in the correct order, "()" and "()[]{}" are all valid but
"(]" and "([)]" are not.
题目要求判断括号是否匹配,可以通过栈来实现。
代码如下:
class Solution {
public:
bool isValid(string s) {
stack<char> opstack;
char c ;
for (int i=0; i<s.size(); i++)
{
c = s[i];
if ((c=='(') || (c=='[') || (c=='{'))
{
opstack.push(c);
}
else if ((c==')') || (c==']') || (c=='}'))
{
if (opstack.empty())
{
return false;
}
char tmp = opstack.top();
if ((c==')' && tmp=='(') || (tmp=='[' &&c==']' ) ||(tmp=='{' && c=='}'))
{
opstack.pop();
}else{
return false;
}
}
}
return opstack.empty();
}
};LeetCode 20: Valid Parentheses
原文:http://blog.csdn.net/sunao2002002/article/details/46336015