【LeetCode】20

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();
    }
};
 
原文地址:https://www.cnblogs.com/irun/p/4795972.html