Задачи
July 30, 2022
Задача. Количество подстрок с гласными буквами
Подстрока — это непрерывная и н непустая последовательность символов в строке.
А подстрока гласных — это подстрока, состоящая только из гласных ('а', 'е', 'i', 'o' и 'u') и содержащая все пять гласных.
Необходимо вернуть количество подстрок гласных в заданном слове.
word = "aeiouu"
Output: 2
Примечание: "aeiou", "aeiouu"
Разбор
Одно из наиболее простых решений - это использование хэш-таблицы. Алгоритм будет следующим:
- Все гласные буквы (их 5) добавим в хэш-таблицу Vowels.
- Частный случай: если строка меньше 5, очевидно, что все гласные не помещаются, возвращаем 0.
- Далее проходим по строке и ищем все подстроки, которые содержат 5 и более гласных и ни одной согласной.
- Так как мы ищем все возможные подстроки, то испольузуем вложенный цикл. 1й цикл проходит по всей строке, вложенный цикл идет от текущего символа и проверяет, что каждый след.символ это гласная.
- Внутри вложенного цикла 2я хэш-таблица считает все полученные гласные, если размер 2й хэш-таблицы больше или равен 5, увеличиваем результирующий счетчик.
- Не забываем обнулить 2ю хэш-таблицу в конце 1го цикла.
- Выводим результат.
Детали реализации смотрите ниже.