File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {string } s
3
+ * @return {boolean }
4
+ */
5
+
6
+ const BRACKETS = {
7
+ SMALL_LEFT : '(' ,
8
+ SMALL_RIGHT : ')' ,
9
+ MIDIDUM_LEFT : '{' ,
10
+ MIDIDUM_RIGHT : '}' ,
11
+ LARGE_LEFT : '[' ,
12
+ LARGE_RIGHT : ']' ,
13
+ } ;
14
+
15
+ const LEFT_BRAKCETS_SET = new Set ( [ BRACKETS . SMALL_LEFT , BRACKETS . MIDIDUM_LEFT , BRACKETS . LARGE_LEFT ] ) ;
16
+
17
+ const BRACKET_MAPPER = {
18
+ [ BRACKETS . SMALL_RIGHT ] : BRACKETS . SMALL_LEFT ,
19
+ [ BRACKETS . MIDIDUM_RIGHT ] : BRACKETS . MIDIDUM_LEFT ,
20
+ [ BRACKETS . LARGE_RIGHT ] : BRACKETS . LARGE_LEFT ,
21
+ } ;
22
+
23
+ var isValid = function ( s ) {
24
+ const stack = [ ] ;
25
+
26
+ for ( const bracket of s ) {
27
+ if ( LEFT_BRAKCETS_SET . has ( bracket ) ) {
28
+ stack . push ( bracket ) ;
29
+ } else {
30
+ const poppedBracekt = stack . pop ( ) ;
31
+
32
+ if ( poppedBracekt !== BRACKET_MAPPER [ bracket ] ) {
33
+ return false ;
34
+ }
35
+ }
36
+ }
37
+
38
+ return stack . length === 0 ;
39
+ } ;
You can’t perform that action at this time.
0 commit comments