Текстовый файл состоит не более чем из \(10^6\) символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Текст разбит на строки различной длины. Необходимо найти строку, содержащую самую длинную цепочку стоящих подряд одинаковых букв. Если таких строк несколько, надо взять ту, которая в файле встретилась раньше. Определите, какая буква встречается в этой строке реже всего (но присутствует!). Если таких букв несколько, надо взять ту, которая стоит позже в алфавите. Запишите в ответе эту букву, а затем – сколько раз она встречается во всем файле.
Пример. Исходный файл:
ZZQABA ZALAAC QRAQUT
В этом примере в первой и второй строках наибольшая длина цепочек одинаковых буквы равна 2 (ZZ в первой строке, AA во второй), в третьей – 1. Берём первую строку, т.к. она находится в файле раньше. В этой строке реже других встречаются буквы Q и B (по разу), выбираем букву Q, т. к. она позже стоит в алфавите. В ответе для этого примера надо записать Q3, так как во всех строках файла буква Q встречается 3 раза.
Решение:
Python
m = 0
stmp = ''
for line in open('3785.txt'):
mt, t = 0, 1
for p in range(1, len(line)):
if line[p-1] == line[p]:
t += 1
else:
mt = max(mt, t)
t = 1
if mt > m:
m = mt
stmp = line.strip()
ch = {}
for c in stmp:
ch[c] = ch.get(c, 0) + 1
m = min(ch.values())
ch = sorted([c for c in ch if ch[c] == m])
ans = 0
for line in open('3785.txt'):
ans += line.count(ch[-1])
print(f'{ch[-1]}{ans}')
Ответ: \(Z36493\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене