Все задачи №24
№24

Пара «20» ровно 26 раз, одна гласная

Текстовый файл. Файл из цифр и заглавных латинских букв. Найди минимальное число подряд идущих символов, среди которых пара «20» встречается ровно 26 раз, гласная (A, E, I, O, U, Y) встречается ровно один раз и последовательность заканчивается этой гласной.

Источник: ФИПИ, № 28943

Скачать файл: task_28943_A.txt. В редакторе он уже лежит рядом с кодом, открывай как на экзамене: open('task_28943_A.txt').

Ответвпиши то, что вывела программа
Показать разбор
  1. Иди по строке и храни индексы последних 26 вхождений «20», лишние выкидывай через pop(0).
  2. Встретил гласную: это возможный конец подстроки. Если индексов ровно 26, подстрока идёт от первого из них до этой гласной.
  3. Запомни наименьшую длину.
  4. После гласной очисти список: подстрока не может содержать две гласные.
s = open('task_28943_A.txt').readline().strip()
indexes = []
mn = float('inf')
for i in range(len(s)):
    if s[i] in 'AEIOUY':
        if len(indexes) == 26:
            mn = min(mn, i - indexes[0] + 1)
        indexes = []
    elif s[i:i + 2] == '20':
        indexes.append(i)
        if len(indexes) > 26:
            indexes.pop(0)
print(mn)