반응형
문자열을 인자로 받습니다.
문자열은 [ , ], { , }, ( , )인 괄호들로만 이루어져 있습니다.
문자열 괄호들이 올바르게 열고 닫혀있는지를 체크하는 문제입니다.
저는 아래와 같이 풀었습니다.
class Solution:
def isValid(self, s: str) -> bool:
stack = []
parenthesis = {"[" : "]", "{" : "}", "(" : ")"}
for char in s:
if char in parenthesis.keys():
stack.append(char)
else:
if not stack: return False
if char == parenthesis.get(stack[-1]):
stack.pop()
else:
return False
if stack: return False
return True
1. open 괄호가 들어오면 리스트에 담습니다.
2. close 괄호가 들어오면 list에 open 괄호가 있는지 체크합니다.
3. 있다면 list에서 마지막 open 괄호를 꺼내 close와 맞는지 확인합니다. -> 확인하기 유용하도록 위에 묶음은 dict로 선언했습니다.
4. 맞지 않으면 False를 반환합니다.
5. 마지막으로 list에 문자가 남아 있다면 False를 반환하도록 합니다.
감사합니다.
반응형
'Algorithm > DataStructure' 카테고리의 다른 글
leetcode - Tree - Maximum Depth of Binary Tree (0) | 2020.03.24 |
---|---|
leetcode - Tree - Symmetric Tree (0) | 2020.03.23 |
leetcode - Tree - Same Tree (0) | 2020.03.19 |
leetcode -Stack - Remove All Adjacent Duplicates In String (0) | 2020.03.16 |
leetcode - Stack - Min Stack (1) | 2020.03.13 |