题目 题解 注意到特定元音后面可以跟的元音字母固定,所以添加一个元音字母只能在特定情况下添加,情况符合: e a i u a e i 3 i o i o i u o 因此可以给出递归方程: dp[n+1] = (dp[n][1] + dp[n][2] + dp[n][4], dp[n][0] + dp[n][2], dp[n][1] + dp[n][3], dp[n][2], dp[n][3] + dp[n][2]) 代码 class Solution: def countVowelPermutation(self, n: int) -> int: MOD = 10**9+7 dp = (1, 1, 1, 1, 1) for i in range(2, n+1): dp = (dp[1] + dp[2] + dp[4], dp[0] + dp[2], dp[1] + dp[3], dp[2], dp[3] + dp[2] ) res = 0 for i in dp: res += i return res % MOD 复杂度 时间复杂度: O ( n ) O(n) O(n)空间复杂度: O ( 1 ) O(1) O(1)