File tree Expand file tree Collapse file tree 1 file changed +19
-27
lines changed Expand file tree Collapse file tree 1 file changed +19
-27
lines changed Original file line number Diff line number Diff line change 3
3
* @param {string } p
4
4
* @return {number[] }
5
5
*/
6
- const findAnagrams = function ( s , p ) {
7
- const slen = s . length
8
- const plen = p . length
9
- if ( plen > slen ) {
10
- return [ ]
6
+ const findAnagrams = function ( s , p ) {
7
+ const slen = s . length ;
8
+ const plen = p . length ;
9
+ if ( plen > slen ) return [ ] ;
10
+ const aCode = "a" . charCodeAt ( 0 ) ;
11
+ const count = new Array ( 26 ) . fill ( 0 ) ;
12
+ for ( let i = 0 ; i < plen ; i ++ ) count [ p . charCodeAt ( i ) - aCode ] += 1 ;
13
+ const res = [ ] ;
14
+ for ( let i = 0 ; i < slen ; i ++ ) {
15
+ count [ s . charCodeAt ( i ) - aCode ] -= 1 ;
16
+ if ( i >= plen - 1 ) {
17
+ if ( i - plen >= 0 ) count [ s . charCodeAt ( i - plen ) - aCode ] += 1 ;
18
+ if ( allZero ( count ) ) res . push ( i - plen + 1 ) ;
11
19
}
12
- const aCode = ( 'a' ) . charCodeAt ( 0 )
13
- const count = new Array ( 26 ) . fill ( 0 )
14
- for ( let i = 0 ; i < plen ; i ++ ) {
15
- count [ p . charCodeAt ( i ) - aCode ] += 1
16
- }
17
- const res = [ ]
18
- for ( let i = 0 ; i < slen ; i ++ ) {
19
- count [ s . charCodeAt ( i ) - aCode ] -= 1
20
- if ( i >= plen - 1 ) {
21
- if ( i - plen >= 0 ) count [ s . charCodeAt ( i - plen ) - aCode ] += 1
22
- if ( allZero ( count ) ) {
23
- res . push ( i - plen + 1 )
24
- }
25
- }
26
- }
27
-
28
- return res
20
+ }
21
+ return res ;
29
22
} ;
30
-
31
23
function allZero ( count ) {
32
- for ( let el of count ) {
33
- if ( el !== 0 ) return false
34
- }
35
- return true
24
+ for ( let el of count ) {
25
+ if ( el !== 0 ) return false ;
26
+ }
27
+ return true ;
36
28
}
You can’t perform that action at this time.
0 commit comments