Задание 24. Информатика. ЕГЭ. Шастин. 13.03.2025
- Просмотры: 218
- Изменено: 17 марта 2025
(Л. Шастин) Текстовый файл состоит не более, чем из \(7~200~000\) прописных символов латинского алфавита. Назовем «перетройкой» такие две одинаковые непрерывные строковые подпоследовательности длины \(3,\) которые пересекаются в одной букве (т.е. начало одной тройки совпадает с концом другой). Определите в прилагаемом файле минимальное количество идущих подряд символов, среди которых встречается не менее \(170\) «перетроек». Например, в строке ABCBCBCBDDDHAHAHEF есть 4 «перетройки»: BCBCBCB — в этой подстроке \(3\) «перетройки», HAHAH — в этой подстроке \(1\) «перетройка». Для выполнения этого задания следует написать программу.
Решение:
Python
base = ''
s = open(base + '24.txt').readline().strip()
pr = []
for p in range(len(s) - 5):
if s[p:p+3] == s[p+2:p+5]:
pr.append(p)
print(min(y - x + 5 for x, y in zip(pr, pr[169:])))
Ответ: \(2545440\)