File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed
Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change 1+ # https://leetcode.com/problems/valid-parentheses/
2+
3+ class Solution :
4+ def isValid (self , s : str ) -> bool :
5+ """
6+ [Complexity]
7+ - TC: O(n)
8+ - SC: O(n)
9+
10+ [Approach]
11+ s를 순회하면서 다음을 stack에 수행한다.
12+ - 닫는 괄호: stack이 비어있거나, stack.top이 매칭이 안 된다면 빠르게 False 반환 (+ 매칭이 된다면 stack.pop())
13+ - 여는 괄호: stack에 추가
14+ 이렇게 전체를 순회했을 때 stack이 비어있어야 valid parentheses이다.
15+ """
16+
17+ matches = {
18+ ")" : "(" ,
19+ "}" : "{" ,
20+ "]" : "["
21+ }
22+
23+ stack = []
24+
25+ for p in s :
26+ # 닫는 괄호: (1) stack이 비어있거나 (2) stack의 top이 pair가 아니라면 False (+ pair라면 stack.pop())
27+ if p in matches :
28+ if not stack or stack .pop () != matches [p ]:
29+ return False
30+ # 여는 괄호: stack에 추가
31+ else :
32+ stack .append (p )
33+
34+ # stack이 비어있어야 valid parentheses
35+ return not stack
You can’t perform that action at this time.
0 commit comments