3가지 형태의 괄호로 이루어진 문자열이 input으로 주어질 때, 해당 괄호가 유효한지 검증하는 문제입니다.
Point
1. Open bracket이 주어진 이후에는 반드시 같은 형태의 닫는 괄호가 나와야 한다.
2. Open bracket이 모두 닫히지 않은 형태도 고려해줘야 한다.
class Solution {
public boolean isValid(String s) {
boolean answer = true;
Stack<Character> stack = new Stack();
int idx = 0;
while(answer && idx<s.length()) {
switch(s.charAt(idx)) {
case '(':
stack.push('(');
break;
case '{':
stack.push('{');
break;
case '[':
stack.push('[');
break;
case ')':
if(!stack.isEmpty() && stack.peek() == '(') {
stack.pop();
} else {
answer = false;
}
break;
case '}':
if(!stack.isEmpty() && stack.peek() == '{') {
stack.pop();
} else {
answer = false;
}
break;
case ']':
if(!stack.isEmpty() && stack.peek() == '[') {
stack.pop();
} else {
answer = false;
}
break;
}
idx++;
}
if(!stack.isEmpty())
answer = false;
return answer;
}
}
반응형
'Computer Science > Problem Solve' 카테고리의 다른 글
LeetCode Weekly Contest 272 (0) | 2021.12.19 |
---|---|
LeetCode(릿코드) - Merge Two Sorted Lists (0) | 2021.12.06 |
LeetCode(릿코드) - Longest Common Prefix (0) | 2021.12.05 |
LeetCode(릿코드) - Two Sum (0) | 2021.12.04 |
LeetCode(릿코드) - Roman to Integer (0) | 2021.12.03 |
댓글