Сколько гласных в записке?
Условие
В школе тебе дали записку — это строка из маленьких латинских букв.
Твоя задача — посчитать, сколько в ней гласных букв. Гласные: a, e, i, o, u, y.
Формат ввода
Одна строка s — только маленькие латинские буквы (a–z).
Формат вывода
Выведи одно целое число — сколько гласных в строке.
Ограничения
1 ≤ len(s) ≤ 200000- в строке только маленькие латинские буквы
Пример
Ввод:
school
Вывод:
2Как решать — идея подхода
Приём: Линейный проход + множество для проверки
Ключевое наблюдение: нужно просто посчитать, сколько символов строки принадлежат фиксированному маленькому набору гласных a,e,i,o,u,y. Порядок букв не важен, важна только принадлежность.
Приём: линейный проход по строке и проверка ch in vowels, где vowels — множество (set). Почему set: проверка принадлежности в среднем работает за O(1), и на длине до 200000 это гарантирует быстрый подсчёт.
План:
- Создай набор гласных:
vowels = {'a','e','i','o','u','y'}(илиset('aeiouy')). - Заведи счётчик
cnt = 0. - Пройди по всем символам строки
s: - если
ch in vowels, увеличьcnt. - Выведи
cnt.
Мини-сниппет идеи:
if ch in vowels: cnt += 1
Сложность: O(n) по времени, где n = len(s); по памяти O(1) (набор из 6 букв).
Частая ошибка: забыть, что y тоже считается гласной, или не убрать перевод строки при чтении (например, использовать strip(), чтобы \n не мешал).
Разберись руками
Есть записка: "school". Нужно найти в ней все гласные из набора a, e, i, o, u, y и посчитать, сколько их получилось.
- Отметь в строке "school" позиции (индексы с 0), где стоят гласные (a,e,i,o,u,y). Какие это индексы?
- Буква 'o' встречается два раза. Считаем её один раз или два раза?
- Теперь посчитай: сколько отмеченных позиций получилось? Введи число.
Идея: Просматриваешь строку по символам, каждый раз проверяешь: эта буква входит в список гласных или нет. Если входит — учитываешь её, а в конце выводишь, сколько раз это случилось.
Решить задачу с автопроверкой на Python →
Куда дальше
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- Родителям: подготовка бесплатно — сколько стоит репетитор, что даёт бесплатный маршрут и как понять, что ребёнок занимается