题目描述:
方法:倒推
class Solution(object):
def countVowelPermutation(self, n):
MOD = 10 ** 9 + 7
a=e=i=o=u= 1 for ZZZ in xrange(n-1):
a2,e2,i2,o2,u2 = e+i+u,a+i,e+o,i,i+o
a=a2
e=e2
i=i2
o=o2
u=u2
a %= MOD
e %= MOD
i %= MOD
o %= MOD
u %= MOD
return (a+e+i+o+u) % MOD
优化:
class Solution:
def countVowelPermutation(self, n: int) -> int:
a, e, i, o, u = 1, 1, 1, 1, 1
MAX = 10 ** 9 + 7 for k in range(1, n):
a, e, i, o, u = (e + i + u) % MAX, (a + i) % MAX, (e + o) % MAX, i, (i + o) % MAX return (a + e + i + o + u) % MAX