Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
An input string is valid if:
Example 1:
Example 2:
Example 3:
import java.util.Stack;
class Solution {
public boolean isValid(String s) {
// 스택 초기화
Stack<Character> stack = new Stack<>();
// 문자열 순회
for (char c : s.toCharArray()) {
switch (c) {
// 여는 괄호는 스택에 추가
case '(':
case '{':
case '[':
stack.push(c);
break;
// 닫는 괄호는 스택에서 pop하여 확인
case ')':
if (stack.isEmpty() || stack.pop() != '(') {
return false;
}
break;
case '}':
if (stack.isEmpty() || stack.pop() != '{') {
return false;
}
break;
case ']':
if (stack.isEmpty() || stack.pop() != '[') {
return false;
}
break;
}
}
// 스택이 비어 있으면 모든 괄호가 올바르게 닫힌 것
return stack.isEmpty();
}