Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определите наибольшую длину цепочки символов, среди которых нет
Например, в тексте ABCAABAKLD самая длинная цепочка символов, удовлетворяющая условию, — ABCAABAK, её длина
Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.
Будем посимвольно считывать строку из файла. Сначала считаем первый символ строки. Далее в цикле будем считывать символы и проверять, встречается ли в текущей цепочке комбинация
Приведём решение данной задачи на языке Pascal.
var k, max: integer;
c1, c2: char;
f: text;
begin
assign(f,'C:\24.txt');
reset(f);
k := 1;
max := 0;
read(f, c1);
while not Eof(f) do begin
c2 := c1;
read(f, c1);
if ((c2 = 'K') and (c1 = 'L')) or ((c2 = 'L') and (c1 = 'K')) then begin
if k > max then
max := k;
k := 1;
end
else
k := k + 1;
end;
if k > max then
max := k;
writeln(max);
end.
В результате работы данных алгоритмов при вводе данных из файла в условии получаем ответ — 2796.
Ответ: 2796.
Примечание. Путь к файлу необходимо указать согласно расположению файла на Вашем компьютере.
Приведём решение Витаса Ремейкиса на языке Python.
file = open('24.txt', 'r')
st = file.readline()
k = 1
mx = 0
for i in range(1, len(st)):
if (st[i] == 'K' and st[i-1] == 'L') or (st[i-1] == 'K' and st[i] == 'L'):
k = 1
else:
k += 1
if k > mx:
mx = k
print(mx)
Приведём решение Ильи Крылова на языке Python.
t = open("24.txt").readline().replace("LK", "L/K").replace("KL", "K/L")
maximum = 0
counter = 0
for i in t:
if i != "/":
counter += 1
else:
maximum = max(maximum, counter)
counter = 0
print(maximum)
Приведём решение Бориса Савельева на языке Python.
f = open('24.txt')
s = f.readline()
maxi = 0
s = s.replace('KL','K L')
s = s.replace('LK','L K')
s = s.split(' ')
for i in range (0,len(s)):
maxi = max(maxi,len(s[i]))
print(maxi)
Приведём решение Ильи Андрианова на языке Python.
s = open('24.txt').readline()
s = s.replace('KL', 'K L').replace('LK', 'L K')
print(max([len(x) for x in s.split()]))

