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) { stack<char> stk; int size = s.size(); for(int i=0;i<size;i++){ if(s[i]=='('||s[i]=='['||s[i]=='{'){ stk.push(s[i]); }else{ if(stk.empty()){ return false; } char topCh = stk.top(); if((s[i]==']' && topCh=='[' )|| (s[i]==')' && topCh=='(' )|| (s[i]=='}' && topCh=='{' ) ){ stk.pop(); }else{ return false; } } } return stk.empty()? true:false; } };