Даны две строки 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.
Объяснение кода листинга программы
- Ввод строк s и t с помощью функции readln().
- Сравнение длин строк s и t.
- Если длина строки s больше, то строки s и t меняются местами.
- Вычисление длины наибольшей общей подстроки.
- Переменная k инициализируется нулем.
- Два вложенных цикла for для нахождения наибольшей общей подстроки.
- В каждой итерации циклов создается подстрока v, которая сравнивается с основной строкой t.
- Если подстрока v присутствует в строке t и ее длина больше текущей максимальной длины, то обновляется значение переменной k и значение переменной ss.
- После завершения циклов проверяется значение переменной k.
- Если k равно нулю, выводится сообщение
Общих подстрок нет
. - В противном случае выводится сообщение
Наибольшая общая подстрока:
и значение переменной ss.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д