1
const getCharIdx = (c) => c.charCodeAt(0) - "a".charCodeAt(0);
2
const isEqual = (a, b) => a.every((v, i) => v == b[i]);
3

4
var checkInclusion = function (s1, s2) {
5
const occS1 = new Array(26).fill(0);
6
const occS2 = new Array(26).fill(0);
7

8
const s1Len = s1.length,
9
s2Len = s2.length;
10

11
if (s1Len > s2Len) return false;
12

13
let l = 0,
14
r = 0;
15
for (; r < s1Len; r++) {
16
occS1[getCharIdx(s1[r])]++;
17
occS2[getCharIdx(s2[r])]++;
18
}
19

20
if (isEqual(occS1, occS2)) {
21
return true;
22
}
23

24
for (; r < s2Len; r++) {
25
occS2[getCharIdx(s2[r])]++;
26
occS2[getCharIdx(s2[l++])]--;
27

28
if (isEqual(occS1, occS2)) return true;
29
}
30

31
return false;
32
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0