Загрузка...

I can't solve the problem. [Python]

Thread in Python created by ImTrick Aug 21, 2019. 1887 views

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

    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)

    The post was merged to previous Aug 22, 2019
    Работает
     
  9. ImTrick
    ImTrick Topic starter Aug 22, 2019 На стадии обучения ... [20% complete] 0 Nov 24, 2017
    borkakoz, ты чуть-чуть не доделал. Рассмотрел случай когда только 3 гласных подряд. А их может быть намного больше. Но все ровно спасибо, сейчас доделаю
     
  10. borkakoz
    borkakoz Aug 22, 2019 --> НовоКеК <-- 28 Jun 20, 2017
Loading...
Top