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> charStack = new Stack<Character> ();
char [] a = s.toCharArray();
for(int i=0 ;i<s.length();i++){
char b = s.charAt(i);
if(a[i]=='('||a[i]=='['||a[i]=='{'){
charStack.push(a[i]);
}else{
if(charStack.isEmpty()) return false ;
if(b==')'&&charStack.peek()!='(') return false;
if(b==']'&&charStack.peek()!='[') return false;
if(b=='}'&&charStack.peek()!='{') return false;
charStack.pop();
}
}
return charStack.isEmpty();
}
}