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) { LinkedList<Character> left=new LinkedList<Character>(); for(int i=0;i<s.length();i++){ if(s.charAt(i)=='(' || s.charAt(i)=='{' || s.charAt(i)=='['){ left.add(s.charAt(i)); } else{ if(!left.isEmpty()){ char c=left.peekLast(); if( (c=='(' && s.charAt(i)==')') || (c=='{' && s.charAt(i)=='}') || (c=='[' && s.charAt(i)==']')) left.pollLast(); else left.add(s.charAt(i)); } else left.add(s.charAt(i)); } } if(left.isEmpty()) return true; else return false; } }