LeetCode20 --------Valid Parentheses
传统的括号匹配问题,考虑左括号和右括号,遇到左括号压栈,遇到右括号与栈顶元素比较。
这里我用一个Map来保存左右括号的对应关系以便在栈顶元素中进行比较。
代码:
class Solution {
public:
bool isValid(string s) {
stack<char> brackets;
map<char, char>myMap;
myMap[')'] = '(';
myMap[']'] = '[';
myMap['}'] = '{';
int len = s.size();
int i;
for (i = 0; i<len; i++)
{
if (s[i] == '(' || s[i] == '[' || s[i] == '{')
{
brackets.push(s[i]);
}
if (s[i] == ')' || s[i] == ']' || s[i] == '}')
{
if (brackets.empty() == true)
return false;
if (brackets.top() != myMap[s[i]])
return false;
else
{
if (!brackets.empty())
brackets.pop();
else
return true;
}
}
}
if (!brackets.empty())
return false;
else
return true;
}
};