leetcode 52: valid parentheses

Valid ParenthesesJan 30 '12

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) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        stack<char> myStack;
        char c;
        
        for( int i=0; i<s.size(); i++) {
            if( s[i] == '(' || s[i] == '[' || s[i] == '{') {
                myStack.push( s[i] );
            } else if( myStack.empty() ) {
                return false;
            } else if( s[i] == ')') {
                c = myStack.top();
                if( c!= '(' ) return false;
                else myStack.pop();
            } else if( s[i] == ']') {
                c = myStack.top();
                if( c!= '[' ) return false;
                else myStack.pop();
            } else if( s[i] == '}') {
                c = myStack.top();
                if( c!= '{' ) return false;
                else myStack.pop();
            } else {
                return false;
            }  
        }
        
        return myStack.empty();
    }
};


 

posted @ 2013-01-25 05:00  西施豆腐渣  阅读(145)  评论(0编辑  收藏  举报