Текстовый файл состоит из символов, обозначающих прописные буквы латинского алфавита.
Определите максимальное количество идущих подряд символов, среди которых никакие две буквы из набора букв A, B и C (с учетом повторений) не записаны подряд.
Для выполнения этого задания следует написать программу.
Для решения данной задачи будем заменять символы из набора букв A, B и C на «*». Далее посчитаем количество идущих подряд символов
Приведём решение на языке Python.
s = open('24.txt').read().strip()
s = s.replace('A', '*')
s = s.replace('B', '*')
s = s.replace('C', '*')
maxi = 1
count = 1
for i in range(1, len(s)):
if s[i-1]+s[i] != '**':
count += 1
maxi = max(maxi, count)
else:
count = 1
print(maxi)
В результате работы данного алгоритма при вводе данных из файла в условии получаем ответ — 84.
Ответ: 84.
Примечание. Путь к файлу необходимо указать согласно расположению файла на Вашем компьютере.
Приведём решение Ивана Вельдина на языке Python.
f = open('24.txt')
count = m =1
s = f.readline()
for i in range(1, len(s)):
if s[i-1] not in 'ABC' or s[i] not in 'ABC':
count +=1
m = max(count, m)
else:
count =1
print(m)
Приведём решение Юрия Лысакова на языке Python.
import re
f = open('24.txt')
a = f.readline()
b = re.split(r'AA|AB|AC|BA|BB|BC|CA|CB|CC',a)
print(len(max(b, key = len))+2)
Приведём решение Бориса Савельева на языке Python.
f = open('1_24.txt').readline()
f = f.replace('A','*')
f = f.replace('B','*')
f = f.replace('C','*')
f = f.split('**')
maxi = 0
for i in range(0,len(f)):
maxi = max(maxi,len(f[i])+2)
print(maxi)

