Текстовый файл состоит из десятичных цифр и заглавных букв латинского алфавита.
Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых пара символов YA (в указанном порядке) встречается ровно 140 раз.
В ответе запишите число — количество символов в найденной последовательности.
Для выполнения этого задания следует написать программу.
Решение
Regexp
🔹 Шаг 1. Подключаем finditer из re
from re import *
📌 Подключаем finditer из re: дальше ищем все вхождения пары YA по позициям в строке.
🔹 Шаг 2. Читаем файл одной строкой
s = open("24.txt").readline()
📌 Читаем файл одной строкой — в нём цифры и заглавные буквы латинского алфавита.
🔹 Шаг 3. Список пары хранит индексы начала каждой YA
пары = [m.start() for m in finditer(r"YA", s)]
макс = 0
📌 Список пары хранит индексы начала каждой YA. Для ответа нужно не меньше 140 таких позиций.
🔹 Шаг 4. Перебираем окно из 140 подряд идущих пар: левая граница — символ после…
for i in range(len(пары) - 139):
начало = пары[i - 1] + 1 if i > 0 else 0
конец = пары[i + 140] + 1 if i + 140 < len(пары) else len(s)
макс = max(макс, конец - начало)
📌 Перебираем окно из 140 подряд идущих пар: левая граница — символ после предыдущей YA (или начало файла), правая — символ после 140-й YA в окне (или конец файла). Длина такого отрезка — кандидат в ответ.
🔹 Шаг 5. Жми RUN
print(макс)
📌 Жми RUN — в выводе будет максимальная длина (449151).
✅ Ответ: 449151
🔹 Полный код
from re import *
s = open("24.txt").readline()
пары = [m.start() for m in finditer(r"YA", s)]
макс = 0
for i in range(len(пары) - 139):
начало = пары[i - 1] + 1 if i > 0 else 0
конец = пары[i + 140] + 1 if i + 140 < len(пары) else len(s)
макс = max(макс, конец - начало)
print(макс)