valid Parentheses

Given a string containing just the characters ‘(’, ‘)’, ‘{’, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.

An input string is valid if:

Open brackets must be closed by the same type of brackets. Open brackets must be closed in the correct order. Note that an empty string is also considered valid.

Example 1:

Input: “()” Output: true Example 2:

Input: “()[]{}” Output: true Example 3:

Input: “(]” Output: false Example 4:

Input: “([)]” Output: false Example 5:

Input: “{[]}” Output: true

class Solution{
    public:
        bool isValid(string const& s){
            string left = "([{";
            string right = ")]}";
            stack<char> stk;
            
            for(auto c:s){
                if(left.find(c) != string::npos){
                    stk.push(c);
                }
                else{
                    if(stk.empty() || stk.top() != left[right.find(c)])
                        return false;
                    else
                        stk.pop();
                }
            }
            return stk.empty();
        }
};
怕什么真理无穷,进一寸有一寸的欢喜。---胡适
原文地址:https://www.cnblogs.com/hujianglang/p/11432190.html