问题 8:统计元音
发布: (2026年1月6日 GMT+8 14:05)
2 min read
原文: Dev.to
Source: Dev.to
示例
count_vowels("hello world") # → 3
count_vowels("AEIOU") # → 5
解决方案
def count_vowels(s):
"""
Counts the number of vowels in a string.
"""
vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}
count = 0
for char in s:
if char in vowels:
count += 1
return count
# Test case
print(count_vowels("pooopcycle")) # Output: 4
逐步讲解
-
函数定义:
def count_vowels(s):创建一个接受字符串s的函数。 -
元音集合:
vowels = {...}将所有小写和大写元音存入集合,以实现 O(1) 查找。 -
计数器初始化:
count = 0开始计数。 -
遍历:
for char in s:循环遍历输入字符串的每个字符。 -
检查并递增:
if char in vowels: count += 1当当前字符是元音时,
count加一。 -
返回:
return count返回找到的元音总数。
示例追踪 "pooopcycle"
| 字符 | 是否元音 | 计数 |
|---|---|---|
| p | 否 | 0 |
| o | 是 | 1 |
| o | 是 | 2 |
| o | 是 | 3 |
| p | 否 | 3 |
| c | 否 | 3 |
| y | 否 | 3 |
| c | 否 | 3 |
| l | 否 | 3 |
| e | 是 | 4 |
该函数对该输入正确返回 4。
祝编码愉快! 💻