Текстовый файл состоит не более чем из \(10^6\) символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Текст разбит на строки различной длины. Необходимо найти строку, содержащую наибольшее количество пар соседних букв, которые стоят в таком же порядке и в алфавите (например, AB, BC, CD и т.д.; в цепочке ABC две таких пары). Если таких строк несколько, надо взять ту, которая в файле встретилась позже. Определите, какая буква встречается в этой строке реже всего (но присутствует!). Если таких букв несколько, надо взять ту, которая стоит раньше в алфавите. Запишите в ответе эту букву, а затем – сколько раз она встречается во всем файле.
Пример. Исходный файл:
ZCQABA ZALMAC CRACUT
В этом примере в первой и второй строках по одной подходящей паре (AB и LM), в третьей таких пар нет. Берём вторую строку, т.к. она позже встречается в файле. В этой строке реже других встречаются буквы Z и C (по одному разу), выбираем букву С, т. к. она раньше стоит в алфавите. В ответе для этого примера надо записать C4, так как во всех строках файла буква C встречается 4 раза.
Решение:
Python
m = 0
stmp = ''
for line in open('3781.txt'):
t = sum(ord(y) - ord(x) == 1 for x, y in zip(line, line[1:]))
if t >= m:
m = t
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('3781.txt'):
ans += line.count(ch[0])
print(f'{ch[0]}{ans}')
Ответ: \(B38617\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене