【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.

Tags: Stack String

Solution:
class Solution {
public:
    bool isValid(string s) {
        stack<char> stk;
        for(int i=0;i<s.size();i++){
            char c=s[i];
            if(c=='('||c=='['||c=='{'){
                stk.push(c);
            }else if(c==')'||c=='}'||c==']'){
                if(stk.empty())return false;
                else{
                    char c2=stk.top();
                    stk.pop();
                    if((c2=='('&&c!=')')||(c2=='{'&&c!='}')||(c2=='['&&c!=']'))return false;
                }
            }
        }
        return stk.empty();
    }
};

 

 
posted @ 2015-09-09 21:05  irun  阅读(130)  评论(0编辑  收藏  举报