class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    bool isValid(string s) {
        // write code here
        stack<char> stk;
        for(char c : s)
        {
            if(!stk.empty())
            {
                    if(c == '(' || c == '[' || c == '{')
                {
                    stk.push(c);
                }
                else if(c == ')')
                {
                    if(stk.top() == '(')
                        stk.pop();
                }
                else if(c == ']')
                {
                    if(stk.top() == '[')
                        stk.pop();
                }
                else if(c == '}')
                {
                    if(stk.top() == '{')
                        stk.pop();
                }
            }
            else stk.push(c);
        }
        return (stk.empty());

    }
};