首页 > 代码库 > LeetCode: Valid Parentheses 题解

LeetCode: 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.

题解: 典型的STL stack 应用。注意边界条件。

 1 class Solution { 2 public: 3     bool isValid(string s) { 4         stack<char> st; 5         if(s.size()<=1 || s.size()%2) return false; 6  7         for(int i=0;i<s.size();i++) 8         { 9             if(s[i]==( || s[i]==[ || s[i]=={) st.push(s[i]);10             else if(st.empty())11             {12                 return false;13             }14             else15             {16                 if(  (s[i]==) && st.top()==() ||17                      (s[i]==] && st.top()==[) ||18                      (s[i]==} && st.top()=={) )19                      st.pop();20                 else21                     return false;22             }23         }24         if(!st.empty()) return false;25         else return true;        26     }27 };

转载请注明出处: http://www.cnblogs.com/double-win/ 谢谢!