Skip to content

Commit 88d23b0

Browse files
authored
Create 3031-minimum-time-to-revert-word-to-initial-state-ii.js
1 parent 95411ef commit 88d23b0

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**
2+
* @param {string} word
3+
* @param {number} k
4+
* @return {number}
5+
*/
6+
var minimumTimeToInitialState = function(word, k) {
7+
const n = word.length;
8+
let v = 0;
9+
let dp = new Array(n).fill(0);
10+
for (let i = 1; i < n; i++) {
11+
while (v > 0 && word.charAt(i) != word.charAt(v)) {
12+
v = dp[v - 1];
13+
}
14+
v = dp[i] = v + (word.charAt(i) == word.charAt(v) ? 1 : 0);
15+
}
16+
while (v > 0 && (n - v) % k > 0) {
17+
v = dp[v - 1];
18+
}
19+
return Math.ceil((n - v) / k);
20+
};

0 commit comments

Comments
 (0)