Valid Parentheses

김_리트리버·2021년 4월 3일
0

[알고리즘]

목록 보기
41/47
""" 
괄호들로 구성된 문자열이 주어짐 

닫힌 형태로 구성되있으면 true 아니면 false 

닫힌 형태 () ([]) ()[]{}

왼쪽괄호가 먼저 나오고 오른쪽 괄호가 나오는데 

둘이 짝이 맞지 않으면 false 

애초에 s 길이가 2보다 작으면 false

왼쪽 괄호와 오른쪽 괄호를 비교를 해야하는데 

왼쪽 괄호들을 stack 에 저장해놨다가 pop 을해서 오른쪽 괄호에 해당하는 문자와 쌍인지 확인

오른쪽 괄호에 해당하는 괄호들을 dictionary 에 넣어놓고

s 문자열 전체를 반복해서 char 왼쪽 괄호면 stack 에 넣고 오른쪽 괄호면 stack 에 넣어놨던 왼쪽괄호와 

쌍인지 확인, 일치하지 않으면 false 

오른쪽 괄호와 비교할 왼쪽 괄호가 stack 에 없으면 false 

 """

class Solution:
    def isValid(self, s: str) -> bool:

        bracket = {")": "(", "]": "[", "}": "{"}
        stack = []

        if len(s) < 2:
            return False

        for char in s:

            if char not in bracket:
                stack.append(char)

            elif not stack or stack.pop() != bracket[char]:
                return False

        return len(stack) == 0
profile
web-developer

0개의 댓글