Longest Happy Prefix LeetCode solution in JavaScript

1
var longestPrefix = function (s) {
2
const len = s.length;
3
const z = new Array(len).fill(0);
4
let l = 0,
5
r = 0;
6

7
for (let i = 1; i < len; i++) {
8
if (i <= r) z[i] = Math.min(r - i + 1, z[i - l]);
9
while (i + z[i] < len && s[z[i]] == s[i + z[i]]) {
10
z[i]++;
11
}
12
if (i + z[i] - 1 > r) {
13
r = i + z[i] - 1;
14
l = i;
15
}
16
}
17

18
let idx = -1;
19
for (let i = 1; i < len; i++) {
20
if (i + z[i] == len) {
21
idx = i;
22
break;
23
}
24
}
25
if (idx == -1) return "";
26
return s.slice(idx);
27
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0