Valid Parentheses
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) { int len=s.length(); stack<char> st; for(int i=0; i<len; i++){ switch(s[i]){ case '(': case '{': case '[': st.push(s[i]); break; case '}': if(st.empty()||st.top()!='{'){ return false; } st.pop(); break; case ']': if(st.empty()||st.top()!='['){ return false; } st.pop(); break; case ')': if(st.empty()||st.top()!='('){ return false; } st.pop(); break; default: return false; } } return st.empty(); } };
原文:http://blog.csdn.net/kangrydotnet/article/details/45175131