(Python, Java) 리트코드 - Valid Parentheses
[문제 링크]
Python 풀이
class Solution:
def isValid(self, s: str) -> bool:
store = {"[": "]", "{": "}", "(": ")"}
stack = []
for letter in s:
# 왼쪽
if letter in store:
stack.append(letter)
# 오른쪽 인데 빈 경우
elif len(stack) == 0:
return False
# 오른쪽인데 안 빈경우
else:
pop = stack.pop()
if store.get(pop) != letter:
return False
return len(stack) == 0
Java 풀이
import java.util.*;
class Solution {
public boolean isValid(String s) {
Map<Character, Character> brackets = new HashMap();
brackets.put('[', ']');
brackets.put('{', '}');
brackets.put('(', ')');
Stack<Character> stack = new Stack<>();
for (char letter : s.toCharArray()) {
if (brackets.containsKey(letter))
stack.add(letter);
else if (!stack.isEmpty() && brackets.get(stack.peek()) == letter)
stack.pop();
else {
return false;
}
}
return stack.isEmpty();
}
}