这题的followed我总感觉没写对啊,其实是想表达:ae,e被a followed,但是朴素的理解不该是a被e followed么。按照前一种理解,很好写dp的转移方程。。后一种就错了。。
class Solution:
def countVowelPermutation(self, n: int) -> int:
string = {0:'a',1:'e',2:'i',3:'o',4:'u'}
dp = [[0 for _ in range(5)] for _ in range(n+1)]
for char in range(5):
dp[1][char] = 1
for i in range(2, n+1):
for char in range(5):
if char == 0:
dp[i][char] += dp[i-1][1]
elif char == 1:
dp[i][char] += dp[i-1][0] + dp[i-1][2]
elif char == 2:
dp[i][char] += dp[i-1][0] + dp[i-1][1] + dp[i-1][3] + dp[i-1][4]
elif char == 3:
dp[i][char] += dp[i-1][2] + dp[i-1][4]
else:
dp[i][char] += dp[i-1][0]
return sum([dp[n][i] for i in range(5)])%(10**9+7)