
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определите наибольшую длину цепочки символов, среди которых нет символов K и L, стоящих рядом.
Например, в тексте ABCAABAKLD самая длинная цепочка символов, удовлетворяющая условию — ABCAABAK, её длина равна 8.
Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.
Будем посимвольно считывать строку из файла. Сначала считаем первый символ строки. Далее в цикле будем считывать символы и проверять, встречается ли в текущей цепочке комбинация символов KL или LK. Если такая комбинация не встречается, увеличиваем счётчик k, если такая комбинация встречается — сбрасываем счётчик в значение 1.
Приведём решение данной задачи на языке 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.
Примечание. Путь к файлу необходимо указать согласно расположению файла на Вашем компьютере.