Идея: пройти по символам строки и посчитать те, что входят в множество гласных. Множество (set) даёт быструю проверку $O(1)$.
def count_vowels(text: str) -> int:
vowels = set("аеёиоуыэюя")
return sum(1 for ch in text.lower() if ch in vowels)
print(count_vowels("Привет, мир!")) # 2 (и, е... "и","е" → 2)
print(count_vowels("Информатика")) # 5 (и,о,а,и,а)
Разберём по шагам для слова "Информатика":
- Приводим к нижнему регистру:
"информатика".
- Перебираем символы: и(+1), н, ф, о(+1), р, м, а(+1), т, и(+1), к, а(+1).
- Итого: 5.
sum(1 for ... if ...) — генераторное выражение, считающее количество элементов, удовлетворяющих условию.