Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 24. Информатика. ЕГЭ Статград. База. 12.05.2025
- Просмотры: 644
- Изменено: 16 мая 2025
Текстовый файл содержит буквы L, N, D в двух регистрах, точки и пробелы. В рамках задачи назовём «предложением» непрерывную подпоследовательность символов, для которой выполняются все следующие условия:
- «предложение» должно начинаться с буквы в верхнем регистре, которой предшествует пробел или точка;
- «предложение» должно заканчиваться точкой, которой предшествует буква, причём других точек в предложении быть не должно;
- «словами» в предложении являются произвольные непрерывные подпоследовательности букв, которые могут не иметь смысла и не существовать в языке;
- каждое «слово» может начинаться с буквы в любом регистре, даже если оно стоит не первым в «предложении», но в верхнем регистре может быть записана только первая буква «слова»;
- каждые два соседних «слова» в «предложении» разделены ровно одним пробелом, двух и более рядом стоящих пробелов в «предложении» быть не должно;
- не более \(2\) различных «слов» в «предложении» могут повторяться (встречаться более одного раза).
Определите содержащееся в файле «предложение» максимальной длины. В ответе укажите количество символов в нём.
Решение:
Python
from re import findall
s = open('24.txt').readline().strip()
arr = findall(r'[ .][LND][LNDlnd]*(?: [LNDlnd][lnd]*)* [LNDlnd][lnd]*\.', s.replace('.', '..'))
len_good = 0
for sent in arr:
words = sent[1:-1].split()
rep = set(w for w in words if sent.count(w) > 1)
if len(rep) < 3:
len_good = max(len_good, len(sent[1:]))
else:
spaces = [p for p in range(len(sent)) if sent[p] == ' ' and sent[p+1] in 'NLD']
for p in spaces:
if len(set(w for w in rep if sent[p+1].count(w) > 1)) < 3:
len_good = max(len_good, len(sent[p+1:]))
break
print(len_good)
Ответ: \(1574\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


