№24 · решено
Пара «20» ровно 26 раз, одна гласная
Текстовый файл. Файл из цифр и заглавных латинских букв. Найди минимальное число подряд идущих символов, среди которых пара «20» встречается ровно 26 раз, гласная (A, E, I, O, U, Y) встречается ровно один раз и последовательность заканчивается этой гласной.
Источник: ФИПИ, № 28943
Скачать файл: task_28943_A.txt. В редакторе он уже лежит рядом с кодом, открывай как на экзамене: open('task_28943_A.txt').
Ответвпиши то, что вывела программа
Показать разбор
- Иди по строке и храни индексы последних 26 вхождений «20», лишние выкидывай через pop(0).
- Встретил гласную: это возможный конец подстроки. Если индексов ровно 26, подстрока идёт от первого из них до этой гласной.
- Запомни наименьшую длину.
- После гласной очисти список: подстрока не может содержать две гласные.
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)