简单的栈匹配问题
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnbcaj/

class Solution {
public:
    bool isValid(string s) {
        stack<char> stk;
        for(int i=0;i<s.size();){
            //左括号入栈
            if(s[i]=='('||s[i]=='['||s[i]=='{'){
                stk.push(s[i]);
                i++;
            }else{
                //栈内没有值可以匹配 则false
                if(stk.empty()) return false;
                //右括号匹配
                if((s[i]==')'&&stk.top()=='(')||(s[i]==']'&&stk.top()=='[')||(s[i]=='}'&&stk.top()=='{')){
                    stk.pop();
                    i++;

                }else{
                    return false;
                }

            }
        }
        if(stk.empty()){
            return true;
        }else{
            return false;
        }
    }
};