Текстовый файл состоит не более чем из
Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.
Приведём решение Николая Чуркина (Тимашевск) на языке Python.
f = open('24.txt').readline()
k = m = 0
for i in range(len(f)):
if (f[i] == 'A' and k%2 == 0) or (f[i] == 'B' and k%2 == 1):
k += 1
m = max(m, k)
elif f[i] == 'A': k = 1
else: k = 0
print(m)
В результате работы данного алгоритма при вводе данных из файла в условии получаем ответ — 24.
Ответ: 24.
Приведём решение Бориса Савельева на языке Python.
f = open('zadanie24_1.txt').readline()
f = f.replace('AB','*')
cnt = 0
maxi = 0
for i in range (0,len(f)):
if f[i] == '*':
cnt += 1
elif f[i] == 'A':
cnt = cnt*2+1
maxi = max(cnt,maxi)
cnt = 0
else:
maxi = max(maxi,cnt*2)
cnt = 0
print(maxi)
Приведём решение Артёма Гридина на языке Python.
import re
s = open('zadanie24_1.txt').readline()
arr = list(zip( * (re.findall(r'((AB)+)', s) + (re.findall(r'((AB)+A)', s)))))[0]
print(len(max(arr)))
Приведём другое решение данной задачи на языке Pascal.
Для решения данной задачи будем посимвольно считывать текстовый файл. Объявим переменные: s — строка для работы с символами из файла, maxCount — максимальная длина последовательности, count — временное хранение длины последовательности, i — переменная для перебора всех символов. Алгоритм будет сравнивать значения на трех позициях, и если символы будут удовлетворять нужным условиям, то значение счетчика будет увеличиваться
Приведём решение данной задачи на языке Pascal.
begin
var s: string;
var i, count, maxCount: integer;
assign(input, '24.txt');
readln(s);
count:=0;
maxCount:=0;
for i:=1 to Length(s) do
if ((s[i]='A') and (count mod 2=0)) or
((s[i]='B') and (count mod 2=1)) then begin
count := count+1;
if count > maxCount then
maxCount := count;
end
else if s[i]='A' then count:=1 else count:=0;
writeln(maxCount);
end.

