[Python] Leetcode 20. valid-parentheses


Leetcode 39 조합의 합

문제

괄호가 된 입력값이 올바른지 판별하라

입력

()[]{}

출력

true

풀이

  • 여는 괄호만 추가하고 닫는 괄호가 나올시 pop한다.
  • 예외처리 케이스가 까다롭다. 다음 경우에 False를 반환하도록 한다.
    • stack에 잔여 케이스가 남아있는 경우
    • 스택에 아무것도 없는 상태에서 닫힌 괄호가 생길 시
def isValid(a):
    stack = []
    table = {
    ')':'(',
    '}':'{',
    ']':'[',
    }
    for s in a:
        if s not in table:
        # 여는 괄호만 추가
            stack.append(s)
        elif not stack or table[char] != stack.pop():
            return False 
            # stack에 남아있는 경우에 False return
    return len(stack) == 0