Skip to content

Commit fed2395

Browse files
authored
Create 2223-sum-of-scores-of-built-strings.js
1 parent 11eec63 commit fed2395

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/**
2+
* @param {string} s
3+
* @return {number}
4+
*/
5+
var sumScores = function(s) {
6+
function z_function(s) {
7+
let n = s.length
8+
let z = Array(n).fill(0)
9+
let l = 0, r = 0
10+
for (let i = 1; i < n; i++) {
11+
if (i <= r) z[i] = Math.min(r - i + 1, z[i - l])
12+
while (i + z[i] < n && s[z[i]] == s[i + z[i]]) {
13+
z[i] += 1
14+
}
15+
16+
if (i + z[i] - 1 > r) {
17+
l = i
18+
r = i + z[i] - 1
19+
}
20+
21+
}
22+
return z
23+
}
24+
25+
const sum = z_function(s).reduce((ac, e) => ac + e, 0)
26+
return sum + s.length
27+
};
28+

0 commit comments

Comments
 (0)