Skip to content

Commit 3663788

Browse files
authored
Create 1220-count-vowels-permutation.js
1 parent 4dc4b5c commit 3663788

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

1220-count-vowels-permutation.js

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/**
2+
* @param {number} n
3+
* @return {number}
4+
*/
5+
const countVowelPermutation = function (n) {
6+
const mod = 1e9 + 7
7+
const arr = [
8+
[0, 1, 1], // a -> e
9+
[0, 1, 2], // e -> a, i
10+
[0, 1, 4], // i -> a, e, o, u
11+
[0, 1, 2], // o -> i, u
12+
[0, 1, 1], // u -> a
13+
]
14+
for (let i = 3; i <= n; i++) {
15+
arr[0][i % 3] = arr[1][(i - 1) % 3] % mod
16+
arr[1][i % 3] = (arr[0][(i - 1) % 3] + arr[2][(i - 1) % 3]) % mod
17+
arr[2][i % 3] =
18+
(arr[0][(i - 1) % 3] +
19+
arr[1][(i - 1) % 3] +
20+
arr[3][(i - 1) % 3] +
21+
arr[4][(i - 1) % 3]) %
22+
mod
23+
arr[3][i % 3] = (arr[2][(i - 1) % 3] + arr[4][(i - 1) % 3]) % mod
24+
arr[4][i % 3] = arr[0][(i - 1) % 3] % mod
25+
}
26+
return arr.reduce((sum, subArr) => sum + subArr[n % 3], 0) % mod
27+
}

0 commit comments

Comments
 (0)