Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
The brackets must close in the correct order, "()"
and "()[]{}"
are all valid but "(]"
and "([)]"
are not.
class Solution { public: bool isValid(string s) { if(s.size()%2)return false; stack<char> stackS; for(int i=0;i<s.size();i++) { if(s[i]=='('||s[i]=='['||s[i]=='{') stackS.push(s[i]); if(s[i]==')'||s[i]==']'||s[i]=='}') { if(!stackS.empty()) { if(((stackS.top()=='(')&&(s[i]!=')'))||((stackS.top()=='[')&&(s[i]!=']'))||((stackS.top()=='{')&&(s[i]!='}'))) { stackS.pop(); return false; } stackS.pop(); } else return false; } } if(stackS.empty())return true; else return false; } };