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.
Subscribe to see which companies asked this question
public class Solution {
public boolean isValid(String s) {
if(s==null||"".equals(s)||s.length()==1){
return false;
}
Stack<Character> stack = new Stack<Character>();
for(int i=0;i<s.length();i++){
if(s.charAt(i)=='{'||s.charAt(i)=='('||s.charAt(i)=='['){
stack.push(s.charAt(i));
}else if(s.charAt(i)=='}'){
if(!stack.empty()&&stack.peek()=='{'){
stack.pop();
}else{
return false;
}
}else if(s.charAt(i)==']'){
if(!stack.empty()&&stack.peek()=='['){
stack.pop();
}else{
return false;
}
}else if(s.charAt(i)==')'){
if(!stack.empty()&&stack.peek()=='('){
stack.pop();
}else{
return false;
}
}
}
if(!stack.empty()){
return false;
}else{
return true;
}
}
}