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> pStack; unordered_map<char,char> map; map['}'] = '{'; map[']'] = '['; map[')'] = '('; for(int i=0;i<s.length();i++) { if(s[i] == '(' || s[i] == '{' || s[i] == '[') { pStack.push(s[i]); } else if (pStack.empty()) { return false; } else if(map[s[i]] == pStack.top()) { pStack.pop(); } else { return false; } } return pStack.empty(); } };