Текстовый файл состоит не более чем из \(10^6\) символов и содержит только десятичные цифры и заглавные буквы латинского алфавита. Определите в этом файле последовательность наибольшей длины идущих подряд символов, представляющих собой \(12\)-ричную запись числа, кратного \(9.\) Если таких последовательностей несколько, выберите последовательность с наименьшим числовым значением. В ответе запишите индекс (номер) последнего символа (последней цифры), на которой заканчивается запись этого числа в прилагаемом файле. Нумерация символов в текстовом файле начинается с нуля.
Решение:
Python
from re import finditer
s = open('8120.txt').readline().strip()
nums = []
ml = 0
for g in finditer(r'[1-9AB][0-9AB]+', s):
if len(g.group(0)) < ml:
continue
ts = g.group(0)
len_ts = len(ts)
for i in range(len_ts - 1, 0, -1):
if int(ts[i-1:i+1], 12) % 9 == 0:
nums.append(ts[:i+1])
ml = max(ml, len(ts[:i+1]))
break
m = max(len(d) for d in nums)
nums = sorted([d for d in nums if len(d) == m])
print(s.find(nums[0]) + m - 1)
Ответ: \(770526\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене