*(С. Якунин) Текстовый файл состоит не более чем из \(10^6\) символов и содержит только десятичные цифры и знаки равенства («\(=\)»). Определите максимальную длину последовательности вида «число1=число2=число3=...=числоN», в которой нет соседних знаков «\(=\)» и хотя бы два соседних числа в цепочке равны. В ответе укажите количество символов.
Решение:
Python
from re import finditer
s = open('7993.txt').readline().strip()
arr = []
n = r'(0|[1-9][0-9]*)'
for g in finditer(rf'{n}(={n})+', s):
tmp = g.group(0).split('=')
lt = len(tmp)
if any(x == y for x, y in zip(tmp, tmp[1:])):
arr.append(len(g.group(0)))
else:
tmp1 = g.group(0)[::-1].split('=')
lt = len(tmp)
for t in (tmp, tmp1):
for i in range(1, lt):
prev, curr = t[i-1], t[i]
lp, lc = len(prev), len(curr)
if lp > lc and prev[-lc:] == curr:
stmp = prev[-lc:] + '=' + '='.join(t[i:])
arr.append(len(stmp))
print(max(arr))
Ответ: \(989\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене