Count Number of Texts LeetCode solution in JavaScript

1
var countTexts = function (pressedKeys) {
2
const MOD = 1e9 + 7;
3
const n = pressedKeys.length;
4
const dp = new Array(n + 1).fill(0);
5

6
dp[0] = 1;
7

8
let lastChar = "";
9
let repeatCount = 0;
10

11
for (let i = 1; i <= n; ++i) {
12
const currChar = pressedKeys[i - 1];
13

14
if (currChar != lastChar) repeatCount = 0;
15

16
lastChar = currChar;
17
repeatCount += 1;
18

19
dp[i] = (dp[i] + dp[i - 1]) % MOD;
20

21
if (i >= 2 && repeatCount >= 2) dp[i] = (dp[i] + dp[i - 2]) % MOD;
22
if (i >= 3 && repeatCount >= 3) dp[i] = (dp[i] + dp[i - 3]) % MOD;
23
if ((currChar == "7" || currChar == "9") && i >= 4 && repeatCount >= 4)
24
dp[i] = (dp[i] + dp[i - 4]) % MOD;
25
}
26

27
return dp[n];
28
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0