Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
An input string is valid if:
- Open brackets must be closed by the same type of brackets.
- Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
Example 1:
Input: "()" Output: true
Example 2:
Input: "()[]{}" Output: true
Example 3:
Input: "(]" Output: false
Example 4:
Input: "([)]" Output: false
Example 5:
Input: "{[]}" Output: true
code:
public boolean isValid(String s) { if(s.equals("")) return true; if(s==null||s.length()%2==1) return false; Stack<Character> stack=new Stack<>(); for(int i=0;i<s.length();i++){ char sym=s.charAt(i); if(sym=='('||sym=='{'||sym=='['){ stack.add(sym); if (stack.size()>= s.length()/2+1) return false; //System.out.println(sym); } else if(sym==')'||sym=='}'||sym==']'){ char sym2; if(stack.isEmpty()) return false; else sym2=stack.pop(); if(sym==')'&&sym2=='('||sym==']'&&sym2=='['||sym=='}'&&sym2=='{') continue; else return false; } } return stack.isEmpty(); }