Совсем недавно начал изучать питон, помогите решить задачку. ================================================================================================================================== Все буквы латинского алфавита делятся на гласные и согласные. Гласными буквами являются: a, e, i, o, u, y. Остальные буквы являются согласными. Слово называется благозвучным, если в этом слове не встречается больше двух согласных букв подряд и не встречается больше двух гласных букв подряд. Например, слова abba, mama,program — благозвучные, а слова aaa, school, search — неблагозвучные. Вводится слово. Если это слово является неблагозвучным, то разрешается добавлять в любые места этого слова любые буквы. Определите, какое минимальное количество букв можно добавить в это слово, чтобы оно стало благозвучным. Входные данные Вводится слово, состоящее только из маленьких латинских букв. Длина слова не превышает 30 символов. Выходные данные Выведите минимальное число букв, которые нужно добавить в это слово, чтобы оно стало благозвучным. Комментарии к примерам тестов 1. Слово уже является благозвучным. 2. Достаточно добавить одну гласную букву, например, между буквами s и с Примеры входные данные program выходные данные 0 входные данные school выходные данные 1
А вообще довольно просто Например for a in slovo: if a in [a, e, i, o, u, y]: counter += 1 else: counter = 0 if counter > 2: print(1) break if counter <= 2: print(0)
ImTrick, решение и правда не очень, но работать должно, сейчас проверю) и я всё ещё не понял почему school, search — неблагозвучные
borkakoz, в слове school первые три буквы - согласные, которые идут подряд. А в слове search - rch идут подряд
ImTrick, А, я не заметил про согласные, сейчас сделаю) --- Сообщение объединено с предыдущим 22 авг 2019 ImTrick, slovo = input() g_counter = 0 # счетчик гласных s_counter = 0 # счетчик согласных for a in slovo: if a in ['a', 'e', 'i', 'o', 'u', 'y']: g_counter += 1 s_counter = 0 else: g_counter = 0 s_counter += 1 if g_counter > 2 or s_counter > 2: print(1) break if g_counter < 2 and s_counter < 2: print(0) Код slovo = input() g_counter = 0 # счетчик гласных s_counter = 0 # счетчик согласных for a in slovo: if a in ['a', 'e', 'i', 'o', 'u', 'y']: g_counter += 1 s_counter = 0 else: g_counter = 0 s_counter += 1 if g_counter > 2 or s_counter > 2: print(1) break if g_counter < 2 and s_counter < 2: print(0) --- Сообщение объединено с предыдущим 22 авг 2019 Работает
borkakoz, ты чуть-чуть не доделал. Рассмотрел случай когда только 3 гласных подряд. А их может быть намного больше. Но все ровно спасибо, сейчас доделаю