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) {
if(s.length()==0) return true;
Stack<Character> stack = new Stack<Character>();
int i=0;
do{
char cur = s.charAt(i);
if(stack.size()!=0){
switch(cur){
case ']':
if(stack.peek()=='[') stack.pop();
else stack.add(cur);
break;
case '}':
if(stack.peek()=='{') stack.pop();
else stack.add(cur);
break;
case ')':
if(stack.peek()=='(') stack.pop();
else stack.add(cur);
break;
default:
stack.add(cur);
}
}else{
stack.add(cur);
}
i++;
}while(i!=s.length());
if(stack.size()==0) return true;
else return false;
}
}