列表

详情


1641. 统计字典序元音字符串的数目

给你一个整数 n,请返回长度为 n 、仅由元音 (a, e, i, o, u) 组成且按 字典序排列 的字符串数量。

字符串 s字典序排列 需要满足:对于所有有效的 is[i] 在字母表中的位置总是与 s[i+1] 相同或在 s[i+1] 之前。

 

示例 1:

输入:n = 1
输出:5
解释:仅由元音组成的 5 个字典序字符串为 ["a","e","i","o","u"]

示例 2:

输入:n = 2
输出:15
解释:仅由元音组成的 15 个字典序字符串为
["aa","ae","ai","ao","au","ee","ei","eo","eu","ii","io","iu","oo","ou","uu"]
注意,"ea" 不是符合题意的字符串,因为 'e' 在字母表中的位置比 'a' 靠后

示例 3:

输入:n = 33
输出:66045

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int countVowelStrings(int n) { } };

python3 解法, 执行用时: 36 ms, 内存消耗: 14.9 MB, 提交时间: 2022-11-12 12:50:03

class Solution:
    def countVowelStrings(self, n: int) -> int:
        '''
        dp[i][j]的意思是长度为i的字符串,以元音字符j为结尾时有效字符串的个数。
        '''
        dp = [[1] * 5 for _ in range(n + 1)]
        for i in range(2, n + 1):
            for j in range(1, 5):
                dp[i][j] = sum(dp[i - 1][:j + 1])
        return sum(dp[-1])

python3 解法, 执行用时: 32 ms, 内存消耗: 14.8 MB, 提交时间: 2022-11-12 12:46:48

class Solution:
    def countVowelStrings(self, n: int) -> int:
        return math.comb(n + 4, 4)

python3 解法, 执行用时: 32 ms, 内存消耗: 14.8 MB, 提交时间: 2022-11-12 12:46:15

class Solution:
    def countVowelStrings(self, n: int) -> int:
        return (n + 4) * (n + 3) * (n + 2) * (n + 1) // 24

上一题