Сколько гласных в записке?

тема: Строки · уровень: базовый

Условие

В школе тебе дали записку — это строка из маленьких латинских букв.

Твоя задача — посчитать, сколько в ней гласных букв. Гласные: a, e, i, o, u, y.

Формат ввода

Одна строка s — только маленькие латинские буквы (az).

Формат вывода

Выведи одно целое число — сколько гласных в строке.

Ограничения

Пример

Ввод:

school

Вывод:

2

Как решать — идея подхода

Приём: Линейный проход + множество для проверки

Ключевое наблюдение: нужно просто посчитать, сколько символов строки принадлежат фиксированному маленькому набору гласных a,e,i,o,u,y. Порядок букв не важен, важна только принадлежность.

Приём: линейный проход по строке и проверка ch in vowels, где vowelsмножество (set). Почему set: проверка принадлежности в среднем работает за O(1), и на длине до 200000 это гарантирует быстрый подсчёт.

План:

Мини-сниппет идеи:

Сложность: O(n) по времени, где n = len(s); по памяти O(1) (набор из 6 букв).

Частая ошибка: забыть, что y тоже считается гласной, или не убрать перевод строки при чтении (например, использовать strip(), чтобы \n не мешал).

Разберись руками

Есть записка: "school". Нужно найти в ней все гласные из набора a, e, i, o, u, y и посчитать, сколько их получилось.

Идея: Просматриваешь строку по символам, каждый раз проверяешь: эта буква входит в список гласных или нет. Если входит — учитываешь её, а в конце выводишь, сколько раз это случилось.

Решить задачу с автопроверкой на Python →

Куда дальше