leetcode[20]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) {

       if(s.size()%2)return false;

       stack<char> stackS;

       for(int i=0;i<s.size();i++)

       {

           if(s[i]=='('||s[i]=='['||s[i]=='{')

           stackS.push(s[i]);

           if(s[i]==')'||s[i]==']'||s[i]=='}')

           {

               if(!stackS.empty())

               {

                    if(((stackS.top()=='(')&&(s[i]!=')'))||((stackS.top()=='[')&&(s[i]!=']'))||((stackS.top()=='{')&&(s[i]!='}')))

                    {

                        stackS.pop();

                        return false;

                    }

                        stackS.pop();

               }

               else

                  return false;

           }

       }

       if(stackS.empty())return true;

       else return false;

    }

};

 

你可能感兴趣的:(LeetCode)