Текстовый файл состоит из символов, обозначающих прописные буквы латинского алфавита. Определите максимальное количество идущих подряд символов, среди которых никакие две буквы из набора букв A, B и C (с учетом повторений) не записаны подряд.
Для выполнения этого задания следует написать программу.
Приведём решение на языке Python.
f = open('24.txt').readline()
m = 0
f = f.replace('A','1')
f = f.replace('B','1')
f = f.replace('C','1')
while '11' in f:
f = f.replace('11', '1 1')
f = f.split()
for i in range(len(f)):
m = max(m,len(f[i]))
print(m)
В результате работы данного алгоритма при вводе данных из файла в условии получаем ответ — 49.
Ответ: 49.
Приведём решение Юрия Лысакова на языке Python.
f = open('24.txt')
s = f.read()
count, maxi = 1,0
i = 0
for i in range(1,len(s)):
if s[i-1] not in 'ABC' or s[i] not in 'ABC':
count += 1
else:
maxi = max(maxi,count)
count = 1
print(maxi)
Приведём решение Юрия Красильникова на языке Python.
s = open('24.txt').readline()
a = ''.join([' ' if s[i] in 'ABC' and s[i-1] in 'ABC' else '*' for i in range(1,len(s))]).split()
print(max(len(x) for x in a)+1)
Приведём решение Ильи Андрианова на языке Python.
s = open('24.txt').readline()
for x in 'AA BB CC AB AC BA BC CA CB'.split():
s = s.replace(x, '* *')
print(max(len(x) for x in s.split()))

