Текстовый файл состоит не более чем из \(10^6\) символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Текст разбит на строки различной длины. Необходимо найти строку, содержащую самую длинную цепочку стоящих подряд одинаковых букв. Если таких строк несколько, надо взять ту, которая в файле встретилась раньше. Определите, какая буква встречается в этой строке чаще всего. Если таких букв несколько, надо взять ту, которая стоит раньше в алфавите. Запишите в ответе эту букву, а затем – сколько раз она встречается во всем файле.
Пример. Исходный файл:
ZZQABA ZALAAC QRAQUT
В этом примере в первой и второй строках наибольшая длина цепочек одинаковых буквы равна 2 (ZZ в первой строке, AA во второй), в третьей – 1. Берём первую строку, т.к. она находится в файле раньше. В этой строке чаще других встречаются буквы Z и A (по 2 раза), выбираем букву A, т. к. она стоит раньше в алфавите. В ответе для этого примера надо записать A6, так как во всех строках файла буква A встречается 6 раз.
Решение:
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 = max(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[0])
print(f'{ch[0]}{ans}')
Ответ: \(K36582\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене