본문으로 바로가기

[Leet code] 20. Valid Parentheses

category ps/자료구조 2021. 11. 26. 23:42
Categoryps/자료구조
Tag자료구조
Tagsstack
난이도
발행 여부
사이트Leet code
실수 유형
이해완벽히 이해
최종 편집 일시
푼 날짜

문제 해설 및 주의사항

원문

Given a string s containing just the characters '('')''{''}''[' and ']', determine if the input string is valid.

An input string is valid if:

  1. Open brackets must be closed by the same type of brackets.
  1. 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