class Solution { public: bool isValid(string s) { int n = s.size(); if(n % 2 != 0 ) return false; stack<char> sta; for(int i = 0; i < n; i++){ if(s[i] == '(' || s[i] == '{' || s[i] == '[') sta.push(s[i]); else{ switch (s[i]) { case ')':{ //最容易掉忽略的就是当检测到一个左括号时,忘记判断此时栈的状态 if(sta.empty() || sta.top() != '(') return false; break; } case '}':{ if(sta.empty() || sta.top() != '{') return false; break; } case ']':{ if(sta.empty() || sta.top() != '[') return false; break; } default: break; } sta.pop(); } } if(!sta.empty()) return false; else return true; } };