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> c;
for (int i = 0; i < s.size(); i++) {
if (s.at(i) == '(') {
c.push('(');
}
else if (s.at(i) == '{') {
c.push('{');
}
else if (s.at(i) == '[') {
c.push('[');
}
else if (s.at(i) == ')') {
if (c.size() == 0 || c.top() != '(') {
return false;
}
c.pop();
}
else if (s.at(i) == '}') {
if (c.size()==0 || c.top() != '{') {
return false;
}
c.pop();
}
else if (s.at(i) == ']') {
if (c.size()==0 || c.top() != '[') {
return false;
}
c.pop();
}
}
if (c.size() == 0) {
return true;
}
return false;
}
};