На Python:
Робот учится петь. Пока это непростая для него задача, и не все слова получается пропеть красиво и внятно.
Роботу удобно петь слово, если в нём буквы, обозначающие согласные звуки, чередуются с буквами, обозначающими гласные.
Например, "лалала", "ахаха" и "бада бам" — это удобные строки, а "бам бам" и "тру ля ля" — нет.
Есть строка. Выведи минимальное количество букв, которые нужно заменить, чтобы роботу было удобно её пропеть. Обрати внимание — в строке может быть несколько слов, разделённых пробелами. Вся фраза целиком может оказаться неудобной для пения, несмотря на то, что каждое слово в отдельности — удобное.
Буквы, обозначающие гласные звуки: а, у, о, и, э, ы, я, ю, е, ё.
Ввод Вывод
тру ля ля 1
это она 3
мама мыла раму 0
Answers & Comments
Ответ:
def count_replacements(string):
vowels = "ауоиэыяюеё"
words = string.split()
replacements = 0
for word in words:
if len(word) <= 1:
continue
i = 0
j = 1
while j < len(word):
if (word[i] in vowels) == (word[j] in vowels):
replacements += 1
i += 1
j += 1
return replacements
print(count_replacements("тру ля ля")) # 1
print(count_replacements("это она")) # 3
print(count_replacements("мама мыла раму")) # 0
Объяснение:
Алгоритм сначала устанавливает строку гласных, затем разбивает входную строку на слова и перебирает каждое слово. Для каждого слова алгоритм сравнивает каждую последовательную пару букв, чтобы определить, являются ли они обе гласными или обе согласными. Если они оба одинаковые, необходима замена. Алгоритм увеличивает счетчик для каждой такой замены и возвращает общее количество замен после завершения обработки всех слов.