Поиск в строке неизвестных подстрок, удовлетворяющих заданным условиям [не решено]

Задача

 

Условие
Дана текстовая строка, состоящая из заглавных латинских букв. Требуется найти подстроку из трёх букв, которая встречается в данной строке чаще всего. Например, в строке DEFDEFABCABCZABCDEFDEF чаще всего (4 раза) встречается подстрока DEF.

Формат входного файла
Входной файл содержит текстовую строку.

Формат выходного файла
Выходной файл должен содержать единственное число — количество вхождений самой часто встречающейся подстроки из трёх букв.

Ограничения
Длина исходной строки от 3 до 1000000 символов.

 

Тема

Файлы

Уровень

Сложные задачи

Комментарии

program name;
 
var
 t1, t2: text;
 n, i, j, k: integer;
 s, s1, s2: string;
 
begin
 Assign(t1, 'D:\Users\Пользователь\Desktop\1.txt');
 Assign(t2, 'D:\Users\Пользователь\Desktop\2.txt');
 reset(t1);
 rewrite(t2);
 read(t1, s);
 k := 0;
  for i := 1 to length(S) - 2 do 
   begin
    s1 := copy(s, i, 3);
    for j := 1 to length(s) - 2 do 
     begin
      s2 := copy(s, j, 3);
      if s2 = s1 then inc(k);;
     end;
    if k > n then n := k;
    k := 0;
   end;
 write(t2, n);
 close(t1);
 close(t2);
end.

program z;
var s,a,b,f:string;
n,i,j,m,c:integer;
begin
readln(s);
for i:=1 to length(s)-2 do begin
        a:=copy(s,i,3);
        n:=0;
        for j:=1 to length(s)-2 do begin
                b:=copy(s,j,3);
                if a=b then n:=n+1;
                end;
        if n>m then begin m:=n; f:=a; end;
        end;
writeln(f,' ',m);
readln;
end.

Добавить комментарий