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
class Solution { public boolean isValid(String s) { Stack<Character> stack = new Stack<>(); for(char c : s.toCharArray()){ switch(c){ case '(': stack.push(')'); break; case '[': stack.push(']'); break; case '{': stack.push('}'); break; default: if(stack.isEmpty() || stack.peek() != c){ return false; } stack.pop(); } } return stack.isEmpty(); } }