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.
public class Solution {
public boolean isValid(String s) {
Stack<Character> sk = new Stack<Character>();
for (int i = 0; i < s.length(); i++) {
if(s.charAt(i)=='(') sk.push('(');
else if(s.charAt(i)=='[') sk.push('[');
else if(s.charAt(i)=='{') sk.push('{');
else if(s.charAt(i)==')'){
if(!sk.isEmpty()&&sk.pop()=='(');
else return false;
}else if(s.charAt(i)==']'){
if(!sk.isEmpty()&&sk.pop()=='[');
else return false;
}else if(s.charAt(i)=='}'){
if(!sk.isEmpty()&&sk.pop()=='{');
else return false;
}
}
return sk.isEmpty();
}
}