Работа с текстовым файлом на Python
Текстовый файл содержит более 10000000 символов. Определите максимальную длину цепочки символов, среди которых каждые три соседних символа одинаковые.
f = open("file.txt", "r")
a = list(f.read())
count = 0
for i in range(len(a)):
try:
if a[i-4] == a[i-3] == a[i-2] and a[i-1] == a[i] == a[i+1] and a[i+2] == a[i+3] == a[i+4]:
count += 1
except: pass
print(count)
Я не понял условие задачи, ответ получается слишком большой
Ответы (1 шт):
Скажем, нашли вы такую цепочку достаточно длинную. Как она может выглядеть? Я имею в виду не всю строку, а только искомую цепочку. Для определённости первый символ a. Тогда три первых символа цепочки тоже a - цепочка начинается с aaa. А вторые три символа? Тоже aaa. Значит цепочка начинается с aaaa. И так далее - в самой длинной цепочке из условия все символы одинаковые: aaa...a.
Переформулируем: надо найти самую длинную цепочку одинаковых символов подряд.
import itertools
with open('file.txt') as f:
a = f.read()
# из длин выбираем максимальную
# |
# | из групп нам нужны собираем группы
# | только их длины одинаковых символов
# | | |
# v v v
# --- ----------------- --------------------
print(max(sum(1 for _ in g) for _, g in itertools.groupby(a)))