class Solution { public: /** * * @param s string字符串 * @return bool布尔型 */ bool isValid(string s) { // write code here stack<char> stk; for(int i = 0; i < s.size(); i++){ if(s[i] == '(' || s[i] == '[' || s[i] == '{'){ //压栈 stk.push(s[i]); continue; } //匹配就出栈,不匹配则直接退出 if(s[i] == ')' && stk.size() > 0 && stk.top() == '(' || s[i] == ']' && stk.size() > 0 && stk.top() == '[' || s[i] == '}' && stk.size() > 0 && stk.top() == '{'){ stk.pop(); }else { return false; } } //栈空才是完全匹配了防止((())这个情况 return stk.empty(); } };