class Solution {
public:
    bool isValid(string s) {
        // write code here
        stack<char>st;
        int n=s.size();
        map<char,char>mp={{'(',')'},{'{','}'},{'[',']'}};  //用map(STL库函数)来一一比较括号;
        for(int i=0;i<n;i++){
            if(!st.empty()&&mp[st.top()]==s[i]){  //如果栈不为空且括号相匹配,则删除栈顶;
                st.pop();
            }
            else{
                st.push(s[i]);  //入栈;
            }
        }
        return st.empty();  //若清空则全部符合返回true,否则返回false;
    }
};