📌  相关文章
📜  计算给定字符串的元音对(1)

📅  最后修改于: 2023-12-03 15:12:04.943000             🧑  作者: Mango

计算给定字符串的元音对

本程序可以计算给定字符串中元音对的数量。

输入说明:

输入为一个字符串,字符串由大小写字母组成,不含标点符号或空格。

输出说明:

输出一个整数,表示字符串中的元音对数量。

程序实现思路:

本程序采用循环遍历字符串的方式,利用哈希表记录元音字母出现的次数,根据元音字母出现的次数计算元音对的数量。

代码实现:
def count_vowel_pairs(s: str) -> int:
    # 初始化元音字母哈希表
    vowel_counts = {'a': 0, 'e': 0, 'i': 0, 'o': 0, 'u': 0}
    # 初始化元音对数量
    vowel_pairs = 0
    # 遍历字符串
    for c in s:
        # 如果当前字母是元音字母
        if c in vowel_counts:
            # 先计算当前字母与之前所有元音字母组成的元音对数量
            vowel_pairs += vowel_counts[c]
            # 将当前元音字母出现次数加1
            vowel_counts[c] += 1
    return vowel_pairs

返回的代码片段如下图所示:

def count_vowel_pairs(s: str) -> int:
    # 初始化元音字母哈希表
    vowel_counts = {'a': 0, 'e': 0, 'i': 0, 'o': 0, 'u': 0}
    # 初始化元音对数量
    vowel_pairs = 0
    # 遍历字符串
    for c in s:
        # 如果当前字母是元音字母
        if c in vowel_counts:
            # 先计算当前字母与之前所有元音字母组成的元音对数量
            vowel_pairs += vowel_counts[c]
            # 将当前元音字母出现次数加1
            vowel_counts[c] += 1
    return vowel_pairs

使用示例:
s1 = 'aeiou'
print(count_vowel_pairs(s1))  # 输出:5

s2 = 'leetcode'
print(count_vowel_pairs(s2))  # 输出:3

s3 = 'abcde'
print(count_vowel_pairs(s3))  # 输出:0
复杂度分析:
  • 时间复杂度:O(n),其中 n 为字符串 s 的长度,程序需要遍历一遍字符串 s。
  • 空间复杂度:O(1),元音字母的个数是固定的,哈希表的大小为常数级别。