소피it블로그
[LeetCode] 20번 Valid Parentheses 문제 풀이 (파이썬) 본문
https://leetcode.com/problems/valid-parentheses/
스택 클래스를 따로 구현하여 pop, push 메서드를 구현해줘도 되나 편의상 솔루션 클래스 안에 리스트 형식의 스택을 구현했다.
class Solution:
def isValid(self, s: str) -> bool:
stack = []
for c in s:
if c == "[" or c == "(" or c == "{":
stack.append(c)
else:
if stack and ((c == "]" and stack[-1] == "[") or (c == ")" and stack[-1] == "(") or (c == "}" and stack[-1] == "{")):
stack.pop()
else:
return False
return len(stack) == 0
처음에는 pop() 메서드 관련하여 try except 구문을 중복해서 사용했는데 그러다보니 너무 코드가 길어지고 가독성이 떨어져서, 다른 답안을 참고해 새로 작성하였다.
'CS > 알고리즘 문제풀이' 카테고리의 다른 글
[LeetCode] 2번 Add Two Numbers 문제 풀이 (파이썬) (0) | 2022.09.29 |
---|---|
[LeetCode] 733번 Flood Fill 문제 풀이 (파이썬) (0) | 2022.09.22 |
[LeetCode] 94번 Binary Tree Inorder Traversal 문제 풀이 (파이썬) (0) | 2022.09.22 |
[LeetCode] 150번 Evaluate Reverse Polish Notation 문제 풀이 (파이썬) (0) | 2022.09.22 |
[LeetCode] 200번 Number of Islands 문제 풀이 (파이썬) (1) | 2022.09.21 |