Leetcode Valid Parentheses

OpenSoucre發表於2014-06-24

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.length()%2) return false;
        stack<char> bracket;
        for(int i = 0 ; i < s.length(); ++ i){
            if(s[i]=='(' || s[i]=='{' || s[i] == '[') bracket.push(s[i]);
            else{
                if(bracket.empty()) return false;
                else{
                    if((s[i] == ')' && bracket.top() == '(') || 
                       (s[i] == '}' && bracket.top() == '{') ||
                       (s[i] == ']' && bracket.top() == '['))
                       bracket.pop();
                     else return false;
                }
            }
        }
        if(bracket.empty()) return true;
        else return false;
    }
};

 

相關文章