Загрузка...

Не могу решить задачу. [Python]

Тема в разделе Python создана пользователем ImTrick 21 авг 2019. 1885 просмотров

  1. ImTrick
    ImTrick Автор темы 21 авг 2019 На стадии обучения ... [20% complete] 0 24 ноя 2017
    Совсем недавно начал изучать питон, помогите решить задачку.

    ==================================================================================================================================

    Все буквы латинского алфавита делятся на гласные и согласные. Гласными буквами являются: a, e, i, o, u, y. Остальные буквы являются согласными.

    Слово называется благозвучным, если в этом слове не встречается больше двух согласных букв подряд и не встречается больше двух гласных букв подряд. Например, слова abba, mama,program — благозвучные, а слова aaa, school, search — неблагозвучные.

    Вводится слово. Если это слово является неблагозвучным, то разрешается добавлять в любые места этого слова любые буквы. Определите, какое минимальное количество букв можно добавить в это слово, чтобы оно стало благозвучным.

    Входные данные
    Вводится слово, состоящее только из маленьких латинских букв. Длина слова не превышает 30 символов.

    Выходные данные
    Выведите минимальное число букв, которые нужно добавить в это слово, чтобы оно стало благозвучным.

    Комментарии к примерам тестов

    1. Слово уже является благозвучным.

    2. Достаточно добавить одну гласную букву, например, между буквами s и с

    Примеры
    входные данные
    program

    выходные данные
    0

    входные данные
    school

    выходные данные
    1
     
  2. borkakoz
    borkakoz 21 авг 2019 --> НовоКеК <-- 28 20 июн 2017
    Лол, почему school, search — неблагозвучные
     
  3. Носорог
    Носорог 21 авг 2019 2285 22 апр 2019
    Это как
     
  4. borkakoz
    borkakoz 21 авг 2019 --> НовоКеК <-- 28 20 июн 2017
    А вообще довольно просто
    Например
    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)
     
  5. ImTrick
    ImTrick Автор темы 21 авг 2019 На стадии обучения ... [20% complete] 0 24 ноя 2017
    borkakoz, странное решение, мне кажется не будет работать
     
  6. borkakoz
    borkakoz 21 авг 2019 --> НовоКеК <-- 28 20 июн 2017
    ImTrick, решение и правда не очень, но работать должно, сейчас проверю) и я всё ещё не понял почему school, search — неблагозвучные
     
  7. ImTrick
    ImTrick Автор темы 21 авг 2019 На стадии обучения ... [20% complete] 0 24 ноя 2017
    borkakoz, в слове school первые три буквы - согласные, которые идут подряд. А в слове search - rch идут подряд
     
  8. borkakoz
    borkakoz 21 авг 2019 --> НовоКеК <-- 28 20 июн 2017
    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)

    --- Сообщение объединено с предыдущим 22 авг 2019
    Работает
     
    21 авг 2019 Изменено
  9. ImTrick
    ImTrick Автор темы 22 авг 2019 На стадии обучения ... [20% complete] 0 24 ноя 2017
    borkakoz, ты чуть-чуть не доделал. Рассмотрел случай когда только 3 гласных подряд. А их может быть намного больше. Но все ровно спасибо, сейчас доделаю
     
  10. borkakoz
    borkakoz 22 авг 2019 --> НовоКеК <-- 28 20 июн 2017
Загрузка...
Top