思路1:循环字符串,把左边各种括号压入栈。如果遇到右括号,则跟栈顶的符号比较。如果匹配,则栈顶元素出栈,不匹配则返回false
class Solution { public: bool isValid(string s) { if(s=="")return true; stack<char> st; for(auto i:s){ if(i=='(' || i=='{' || i=='[') st.push(i); else{ if(st.size()==0 && (i==']'||i=='}'||i==')')) return false; else if(i=='}' && st.top()!='{' || i==']'&& st.top()!='[' || i==')' && st.top()!='(') return false; else st.pop(); } } if(st.size()!=0) return false; return true; } };