Все задачи №24
№24

Пара BC ровно 190 раз

Текстовый файл. Файл из букв A–F. Найди максимальное число подряд идущих символов, среди которых пара BC встречается ровно 190 раз.

Источник: ФИПИ, № 29354

Скачать файл: task_29354_A.txt. В редакторе он уже лежит рядом с кодом, открывай как на экзамене: open('task_29354_A.txt').

Ответвпиши то, что вывела программа
Показать разбор
  1. Собери индексы всех вхождений BC.
  2. Возьми подряд 190 вхождений. Слева подстрока может начаться сразу после буквы B предыдущего вхождения, так оно разрывается.
  3. Справа подстрока может закончиться на букве B следующего вхождения, тогда и оно не считается.
  4. У самых крайних окон соседа нет: там граница это начало или конец файла. Перебери все окна и возьми наибольшую длину.
s = open('task_29354_A.txt').readline().strip()
indexes = []
for i in range(len(s) - 1):
    if s[i:i + 2] == 'BC':
        indexes.append(i)
mx = 0
for k in range(len(indexes) - 189):
    start_i = indexes[k - 1] + 1 if k > 0 else 0
    end_i = indexes[k + 190] if k + 190 < len(indexes) else len(s) - 1
    mx = max(mx, end_i - start_i + 1)
print(mx)