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             else

15             {

16                 if(  (s[i]==')' && st.top()=='(') ||

17                      (s[i]==']' && st.top()=='[') ||

18                      (s[i]=='}' && st.top()=='{') )

19                      st.pop();

20                 else

21                     return false;

22             }

23         }

24         if(!st.empty()) return false;

25         else return true;        

26     }

27 };

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

你可能感兴趣的:(LeetCode)