Даны две строки s и t, определите длину наибольшей строки, которая встречается в обеих - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Даны две троки s и t, определите длину наибольшей строки, которая встречается в обеих

Решение задачи: «Даны две строки s и t, определите длину наибольшей строки, которая встречается в обеих»

textual
Листинг программы
var s,t,ss,v:string;
    n,i,j,k:integer;
begin
writeln('Введите строку s');
readln(s);
writeln('Введите строку t');
readln(t);
if length(s)>length(t)then
 begin
  ss:=s;
  s:=t;
  t:=ss;
 end;
n:=length(s);
k:=0;
for i:=1 to n do
for j:=1 to n do
 begin
  v:=copy(s,i,j-i+1);
  if (pos(v,t)>0)and(length(v)>k) then
   begin
    k:=length(v);
    ss:=v;
   end;
 end;
if k=0 then write('Общих подстрок нет')
else write('Наибольшая общая подстрока: ',ss);
end.

Объяснение кода листинга программы

  1. Ввод строк s и t с помощью функции readln().
  2. Сравнение длин строк s и t.
  3. Если длина строки s больше, то строки s и t меняются местами.
  4. Вычисление длины наибольшей общей подстроки.
  5. Переменная k инициализируется нулем.
  6. Два вложенных цикла for для нахождения наибольшей общей подстроки.
  7. В каждой итерации циклов создается подстрока v, которая сравнивается с основной строкой t.
  8. Если подстрока v присутствует в строке t и ее длина больше текущей максимальной длины, то обновляется значение переменной k и значение переменной ss.
  9. После завершения циклов проверяется значение переменной k.
  10. Если k равно нулю, выводится сообщение Общих подстрок нет.
  11. В противном случае выводится сообщение Наибольшая общая подстрока: и значение переменной ss.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5
Похожие ответы