[string]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) {
        stack<char> stk;
        int size = s.size();
        for(int i=0;i<size;i++){
            if(s[i]=='('||s[i]=='['||s[i]=='{'){
                stk.push(s[i]);
            }else{
                if(stk.empty()){
                    return false;
                }
                char topCh = stk.top();
                if((s[i]==']' && topCh=='[' )||
                   (s[i]==')' && topCh=='(' )||
                   (s[i]=='}' && topCh=='{' )
                   ){
                      stk.pop(); 
                   }else{
                       return false;
                   }
            }
        }
        return stk.empty()? true:false;
    }
};

 

posted @ 2015-12-04 12:59  zengzy  阅读(138)  评论(0编辑  收藏  举报
levels of contents