题目链接:1220. 统计元音字母序列的数目
动态规划。
长度为 n 的字符串的数量是长度为 n-1 的字符串,在前面添加一个字符前缀形成的。
class Solution:
CONVERT_MAP = {
'a': ['e'],
'e': ['a', 'i'],
'i': ['a', 'e', 'o', 'u'],
'o': ['i', 'u'],
'u': ['a']
}
MOD = 10 ** 9 + 7
def countVowelPermutation(self, n: int) -> int:
ans = {'a': 1, 'e': 1, 'i': 1, 'o': 1, 'u': 1}
for i in range(n - 1):
ans = {key: sum(ans[key2] for key2 in self.CONVERT_MAP[key]) % self.MOD for key in ans}
return sum(ans.values()) % self.MOD