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

元音子字符串由元音(’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
解释:所有包含全部五种元音的子字符串都含有辅音,所以不存在元音子字符串。

提示:

  • 1 <= word.length <= 100
  • word仅由小写英文字母组成

Python:

class Solution {
    public int countVowelSubstrings(String word) {

        int total = 0;
        for(int i = 0; i < word.length(); i++)
        {
            Set<Character> aset = new HashSet<>();
            for(int j = i; j < word.length(); j++)
            {
                if(word.charAt(j) == 'a' || word.charAt(j) == 'e' || word.charAt(j) == 'i' ||  word.charAt(j) == 'o' ||  word.charAt(j) == 'u')
                {
                    aset.add(word.charAt(j));
                    if(aset.size() == 5)
                     total += 1;
                }
                else
                    break;
            }
        }
        return total;
    }
}

Java:

class Solution {
    public int countVowelSubstrings(String word) {

        int total = 0;
        for(int i = 0; i < word.length(); i++)
        {
            Set<Character> aset = new HashSet<>();
            for(int j = i; j < word.length(); j++)
            {
                if(word.charAt(j) == 'a' || word.charAt(j) == 'e' || word.charAt(j) == 'i' ||  word.charAt(j) == 'o' ||  word.charAt(j) == 'u')
                {
                    aset.add(word.charAt(j));
                    if(aset.size() == 5)
                     total += 1;
                }
                else
                    break;
            }
        }
        return total;
    }
}
最后修改日期: 2022年1月10日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。