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