(В. Шубинкин) Текстовый файл состоит не более чем из \(10^6\) символов и содержит только заглавные буквы латинского алфавита и цифры. В файле записаны числа в тридцатеричной системе счисления, окружённые символами, не являющимися цифрами в этой системе счисления или началом/концом файла. Лидирующие нули в записи чисел не допускаются. Определите самую длинную последовательность в этом файле, которая может представлять собой запись числа в тридцатеричной системе счисления, где чётные и нечётные цифры чередуются. Если таких последовательностей несколько, выберите ту, числовое значение которой наименьшее. Например, в последовательности \(Z12345UABCX11111XX0123456Y98765\) есть три тридцатеричных числа с чередующейся чётностью цифр: \(12345,\) \(ABC,\) \(98765.\) Наибольшая длина – \(5.\) Наименьшее числовое значение последовательности с такой длиной – \(12345.\)
Алфавит тридцатеричной системы счисления: \(0123456789ABCDEFGHIJKLMNOPQRST.\)
Решение:
Python
s = open('6677.txt').readline().strip()
#s = 'Z12345UABCX11111XX0123456Y98765'
alph = '0123456789ABCDEFGHIJKLMNOPQRST'
even = alph[::2]
na = 'UVWXYZ'
for c in na:
s = s.replace(c, ' ')
arr = [x for x in s.split(' ') if x and x[0] != '0']
ans = [n for n in arr if all((x in even) != (y in even) for x, y in zip(n, n[1:]))]
m = max(len(n) for n in ans)
ans = [n for n in ans if len(n) == m]
ans.sort()
print(ans[0])
Ответ: \(8NERO9KLST\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене