class Solution { public: /** * * @param s string字符串 * @return bool布尔型 */ bool isValid(string s) { // write code here // 使用栈 在笔试时遇到过此题的拓展, 括号消除 int n = s.size(); if(n<=1) return false; stack<char> stk; bool ans = false; for(char c:s) { if(c=='(' || c=='{' || c=='[') { stk.push(c); } else { if(!stk.empty()) { char a = stk.top(); if((a=='(' && c==')') || (a=='{' && c=='}') || (a=='[' && c==']')) { stk.pop(); // ans = true; } else { return false; } } else { return false; } } } ans = stk.empty(); return ans; } };
其实就是括号消除 只是 多了多类括号