File tree 1 file changed +10
-10
lines changed
1 file changed +10
-10
lines changed Original file line number Diff line number Diff line change 8
8
var reorganizeString = function ( s ) {
9
9
10
10
const maxQ = new MaxPriorityQueue ( {
11
- compare : ( a , b ) => {
11
+ compare : ( a , b ) => {
12
12
return b [ 0 ] - a [ 0 ] ;
13
13
}
14
14
} ) ;
15
15
16
16
const freq = { } ;
17
- for ( let i = 0 ; i < s . length ; i ++ ) {
17
+ for ( let i = 0 ; i < s . length ; i ++ ) {
18
18
const char = s [ i ] ;
19
19
freq [ char ] = ( freq [ char ] && freq [ char ] + 1 || 1 ) ;
20
20
}
21
- for ( const key in freq ) {
21
+ for ( const key in freq ) {
22
22
const val = freq [ key ] ;
23
23
maxQ . enqueue ( [ val , key ] ) ;
24
24
}
25
25
26
26
let orgStr = "" ;
27
- while ( ! maxQ . isEmpty ( ) ) {
27
+ while ( ! maxQ . isEmpty ( ) ) {
28
28
29
29
const [ occurance , char ] = maxQ . dequeue ( ) ;
30
30
31
- if ( orgStr [ orgStr . length - 1 ] === char ) {
31
+ if ( orgStr [ orgStr . length - 1 ] === char ) {
32
32
33
- if ( maxQ . isEmpty ( ) ) return "" ;
33
+ if ( maxQ . isEmpty ( ) ) return "" ;
34
34
35
35
const [ occurance1 , char1 ] = maxQ . dequeue ( ) ;
36
36
orgStr += char1 ;
37
- if ( occurance1 - 1 ) {
38
- maxQ . enqueue ( [ occurance1 - 1 , char1 ] ) ;
37
+ if ( occurance1 - 1 ) {
38
+ maxQ . enqueue ( [ occurance1 - 1 , char1 ] ) ;
39
39
}
40
40
maxQ . enqueue ( [ occurance , char ] ) ;
41
41
} else {
42
42
orgStr += char ;
43
- if ( occurance - 1 ) {
44
- maxQ . enqueue ( [ occurance - 1 , char ] ) ;
43
+ if ( occurance - 1 ) {
44
+ maxQ . enqueue ( [ occurance - 1 , char ] ) ;
45
45
}
46
46
}
47
47
}
You can’t perform that action at this time.
0 commit comments