Skip to content

Commit a5769ca

Browse files
committed
feat: 속도는 빠르지만 복잡한 로직
1 parent 93e82a0 commit a5769ca

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

valid-parentheses/gyeo-ri.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
from collections import deque
2+
3+
4+
class Solution:
5+
def isValid(self, s: str) -> bool:
6+
character_map = {
7+
"(": ")",
8+
"{": "}",
9+
"[": "]",
10+
}
11+
s_stack = deque()
12+
13+
for c in s:
14+
if c in character_map.keys():
15+
s_stack.append(c)
16+
17+
else:
18+
if len(s_stack) > 0:
19+
previous = s_stack.pop()
20+
if character_map[previous] != c:
21+
return False
22+
else:
23+
return False
24+
25+
if len(s_stack) > 0:
26+
return False
27+
else:
28+
return True
29+
30+
31+
if __name__ == "__main__":
32+
test_cases = [
33+
("{{{[[[(([{{}}]))]]]}}}", True),
34+
("{{{]}}", False),
35+
("{", False),
36+
("}}]", False),
37+
("{}[]()", True),
38+
("{[]}[()]", True),
39+
]
40+
41+
solution = Solution()
42+
for idx, case_ in enumerate(test_cases):
43+
s, answer = case_
44+
result = solution.isValid(s)
45+
assert (
46+
answer == result
47+
), f"Test Case {idx} Failed: Expected {answer}, Got {result}"

0 commit comments

Comments
 (0)