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 consider
class Solution {
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '(' || c == '[' || c == '{') {
stack.push(c);
} else {
if (stack.empty()) {
return false;
}
Character peek = stack.peek();
switch (c) {
case ')':
if (peek == '(') {
stack.pop();
} else {
stack.push(c);
}
break;
case ']':
if (peek == '[') {
stack.pop();
} else {
stack.push(c);
}
break;
case '}':
if (peek == '{') {
stack.pop();
} else {
stack.push(c);
}
break;
}
}
}
return stack.empty();
}
}
ed valid.