1+ /* *
2+ * https://leetcode.com/problems/count-sorted-vowel-strings/
3+ */
4+ class CountSortedVowelStrings {
5+
6+ fun countVowelStrings (n : Int ): Int {
7+ if (n == 1 ) {
8+ return 5
9+ }
10+ val vowelMap : MutableMap <Pair <Int ,Char >,Int > = mutableMapOf ()
11+
12+ val vowels = mutableListOf (' a' ,' e' ,' i' ,' o' ,' u' )
13+
14+ vowels.forEach { vowelMap[Pair (1 ,it)] = 1 }
15+
16+ for (i in 1 until n) {
17+ for (v in vowels) {
18+ val current = vowelMap[Pair (i,v)]!!
19+ when (v) {
20+ ' a' -> {
21+ vowelMap[Pair (i+ 1 ,' a' )] = vowelMap.getOrDefault(Pair (i+ 1 ,' a' ),0 )+ current
22+ vowelMap[Pair (i+ 1 ,' e' )] = vowelMap.getOrDefault(Pair (i+ 1 ,' e' ),0 )+ current
23+ vowelMap[Pair (i+ 1 ,' i' )] = vowelMap.getOrDefault(Pair (i+ 1 ,' i' ),0 )+ current
24+ vowelMap[Pair (i+ 1 ,' o' )] = vowelMap.getOrDefault(Pair (i+ 1 ,' o' ),0 )+ current
25+ vowelMap[Pair (i+ 1 ,' u' )] = vowelMap.getOrDefault(Pair (i+ 1 ,' u' ),0 )+ current
26+ }
27+ ' e' -> {
28+ vowelMap[Pair (i+ 1 ,' e' )] = vowelMap.getOrDefault(Pair (i+ 1 ,' e' ),0 )+ current
29+ vowelMap[Pair (i+ 1 ,' i' )] = vowelMap.getOrDefault(Pair (i+ 1 ,' i' ),0 )+ current
30+ vowelMap[Pair (i+ 1 ,' o' )] = vowelMap.getOrDefault(Pair (i+ 1 ,' o' ),0 )+ current
31+ vowelMap[Pair (i+ 1 ,' u' )] = vowelMap.getOrDefault(Pair (i+ 1 ,' u' ),0 )+ current
32+ }
33+ ' i' -> {
34+ vowelMap[Pair (i+ 1 ,' i' )] = vowelMap.getOrDefault(Pair (i+ 1 ,' i' ),0 )+ current
35+ vowelMap[Pair (i+ 1 ,' o' )] = vowelMap.getOrDefault(Pair (i+ 1 ,' o' ),0 )+ current
36+ vowelMap[Pair (i+ 1 ,' u' )] = vowelMap.getOrDefault(Pair (i+ 1 ,' u' ),0 )+ current
37+ }
38+ ' o' -> {
39+ vowelMap[Pair (i+ 1 ,' o' )] = vowelMap.getOrDefault(Pair (i+ 1 ,' o' ),0 )+ current
40+ vowelMap[Pair (i+ 1 ,' u' )] = vowelMap.getOrDefault(Pair (i+ 1 ,' u' ),0 )+ current
41+ }
42+ ' u' -> {
43+ vowelMap[Pair (i+ 1 ,' u' )] = vowelMap.getOrDefault(Pair (i+ 1 ,' u' ),0 )+ current
44+ }
45+ }
46+
47+ }
48+ }
49+
50+ var sum = 0
51+ for (v in vowels) {
52+ sum+ = vowelMap[Pair (n,v)]!!
53+ }
54+ return sum
55+
56+ }
57+
58+
59+ }
0 commit comments