Category | ps/자료구조 |
---|---|
Tag | 자료구조 |
Tags | stack |
난이도 | ★ |
발행 여부 | |
사이트 | Leet code |
실수 유형 | |
이해 | 완벽히 이해 |
최종 편집 일시 | |
푼 날짜 |
문제 해설 및 주의사항
원문
Given a string s
containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
An input string is valid if:
- Open brackets must be closed by the same type of brackets.
- Open brackets must be closed in the correct order.
번역 및 주의사항
풀이
내 풀이 코드
class Solution:
def isValid(self, s: str) -> bool:
table = {
"(" : ")",
"{" : "}",
"[" : "]"
}
stack = collections.deque()
for bracket in s:
if bracket not in table.values():
stack.append(bracket)
elif not stack or (table[stack.pop()] != bracket):
return False
return len(stack) == 0
풀이 코드 (책)
py
책과 내 풀이에서 달랐던 점은 table 의 구성이었다.
table 을 (
를 키로 하느냐 )
를 키로 하느냐가 달랐다.
퇴고
- 결국, 히든 케이스 즉, 예외를 처리하는 것이 마지막에 중요하다.
return len(stack) == 0
같은 예외 처리 구문을 잘 보자.
반응형
'ps > 자료구조' 카테고리의 다른 글
[Leet code] 234. Palindrome Linked List (0) | 2021.11.26 |
---|---|
[Leet code] 21. Merge Two Sorted Lists (0) | 2021.11.26 |
[Leet code] 739. Daily Temperatures (0) | 2021.11.26 |
[boj] 1874. 스택수열 (0) | 2021.11.26 |
[boj] 10773. 제로 (0) | 2021.11.26 |