File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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 } "
You can’t perform that action at this time.
0 commit comments