列表

详情


2062. 统计字符串中的元音子字符串

子字符串 是字符串中的一个连续(非空)的字符序列。

元音子字符串 由元音('a''e''i''o''u')组成的一个子字符串,且必须包含 全部五种 元音。

给你一个字符串 word ,统计并返回 word元音子字符串的数目

 

示例 1:

输入:word = "aeiouu"
输出:2
解释:下面列出 word 中的元音子字符串(斜体加粗部分):
- "aeiouu"
- "aeiouu"

示例 2:

输入:word = "unicornarihan"
输出:0
解释:word 中不含 5 种元音,所以也不会存在元音子字符串。

示例 3:

输入:word = "cuaieuouac"
输出:7
解释:下面列出 word 中的元音子字符串(斜体加粗部分):
- "cuaieuouac"
- "cuaieuouac"
- "cuaieuouac"
- "cuaieuouac"
- "cuaieuouac"
- "cuaieuouac"
- "cuaieuouac"

示例 4:

输入:word = "bbaeixoubb"
输出:0
解释:所有包含全部五种元音的子字符串都含有辅音,所以不存在元音子字符串。

 

提示:

原站题解

去查看

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

python3 解法, 执行用时: 56 ms, 内存消耗: 14.9 MB, 提交时间: 2022-06-14 15:35:51

class Solution:
    def countVowelSubstrings(self, word: str) -> int:
        n = len(word)
        res = 0
        vowelset = set("aeiou")   # 所有元音对应的哈希集合
        for i in range(n):
            # 枚举左端点
            charset = set()   # 子串对应的哈希集合
            for j in range(i, n):
                # 按顺序枚举右端点并更新子串哈希集合及比较
                charset.add(word[j])
                if charset == vowelset:
                    res += 1
        return res

上一题