Задача #2639
Работа со строками
(А. Сражаев) Текстовый файл состоит из десятичных цифр, а так же знака точки и знака & (амперсанд). Определите максимальное количество символов в непрерывной последовательности, которая является выражением вида четырехзначное вещественное число&четырехзначное вещественное число (например, 1234.56&2345.09874). В записи чисел отсутствуют незначащие (ведущие) нули.
В ответе укажите количество символов
Войдите, чтобы история ответов и статистика сохранялись.
Решение
Ответ
45
Видео по задаче
s = next(open('24.txt'))
from re import finditer
word = r'[1-9][0-9]{3}[.][0-9]+'
m = max([s.group(1) for s in finditer(rf'(?=({word}&{word}))', s)], key=len)
print(m, len(m))
s = s.split('&')
a = []
for c1,c2 in zip(s, s[1:]):
c1 = c1.split('.')
c2 = c2.split('.')
if len(c1)>=2 and len(c2)>=2 and len(c1[-2])>=4 and c1[-2][-4]!='0' and len(c1[-1])>0 and \
len(c2[0])==4 and c2[0][0]!='0' and len(c2[1])>0:
a.append(c1[-2][-4:]+'.'+c1[-1]+'&'+c2[0]+'.'+c2[1])
a.sort(key=len,reverse=1)
print(a[0], len(a[0]))