https://leetcode.com/problems/valid-parentheses/
Valid Parentheses - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
풀이 과정
(, {, [, ), }, ]의 괄호가 주어질 때 주어진 문자열이 올바른 괄호 문자열인지 판단하는 문제이다.
스택으로 풀 수 있는 유명한 문제이다. 여는 괄호가 나왔을 때는 그냥 스택에 넣고 닫는 괄호가 나왔을 때는 스택 탑이 동일한 종류의 여는 괄호인지 확인하고 맞으면 스택 pop, 아니면 올바른 괄호 문자열이 아니므로 False를 리턴해주면 된다.
모든 문자열을 살펴봤을 때 스택이 비어있어야 한다. 스택이 비어있지 않으면 닫히지 않은 괄호가 존재하는 것이므로 올바른 괄호 문자열이 아니다.
소스 코드
class Solution:
def isValid(self, s: str) -> bool:
st = []
for letter in s:
if letter in ['(', '{', '[']:
st.append(letter)
elif letter == ')':
if st and st[-1] == '(':
st.pop()
else:
return False
elif letter == '}':
if st and st[-1] == '{':
st.pop()
else:
return False
elif letter == ']':
if st and st[-1] == '[':
st.pop()
else:
return False
return True if not st else False
'알고리즘 문제 풀이 > 리트코드' 카테고리의 다른 글
LeetCode - 739. Daily Temperatures [Python] (0) | 2022.08.02 |
---|---|
LeetCode - 316. Remove Duplicate Letters [Python] (0) | 2022.08.02 |
LeetCode - 328. Odd Even Linked List [Python] (0) | 2022.07.28 |
LeetCode - 24. Swap Nodes in Pairs [Python] (0) | 2022.07.27 |
LeetCode - 2. Add Two Numbers [Python] (0) | 2022.07.27 |