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