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