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