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