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.
bool isValid(string s) { stack<char>st; for (int i = 0; i < s.size();i++) { switch (s[i]) { case '(': case '[': case '{':st.push(s[i]); break; case ')':if (st.empty() || st.top() != '(')return false; else st.pop(); break; case '}': if (st.empty() || st.top() != '{') return false; else st.pop(); break; case ']': if (st.empty() || st.top() != '[') return false; else st.pop(); break; default:; } } return st.empty(); }