20. Valid Parentheses

kukudas·2022년 3월 14일
0

Algorithm

목록 보기
18/46
class Solution:
    def isValid(self, s: str) -> bool:
        stack = []
        dic = {
            ')' : '(',
            '}' : '{',
            ']' : '['
        }

        for c in s:
            # 괄호 시작하는거면 스택에 넣어주고
            if c not in dic:
                stack.append(c)
            # 스택이 비었으면 닫는 괄호만 들어온거니 false고
            # 괄호 닫는 거면 넣어주지말고 스택에서도 자기짝 빼줘야함
            elif not stack or dic[c] != stack.pop():
                return False

        # 스택이 남아있으면 닫는 괄호가 안와서 불완전한거임
        if stack:
            return False

        return True

0개의 댓글