给出字符串

lzusa 发布于 2019-04-18 2 次阅读


题目描述

给出一个由小写字母组成的字符串。你的任务是找出其最长的出现至少两次的子串的长度。这些重复出现的子串可以重叠(参见样例2)。

输入

输入文件ygas.in第一行包含该字符串。数据保证该字符串非空,由小写字母组成,且其长度不超过100。

abcd

输出

输出文件ygas.out包含一个数代表至少出现两次的最长子串的长度。

0

思路

暴力枚举每一个长度就可以了

var
  st,st1,ch:string;
  i,j,k,n,m,ans,max:longint;
begin
  readln(st);
  for i:=length(st)-1 downto 1 do
    begin
      for j:=1 to length(st)-i+1 do
        begin
          ch:=copy(st,j,i);
          st1:=st;
          delete(st1,j,1);
          insert(' ',st1,j);
          if (pos(ch,st1)<>0) then
            begin
              writeln(i);
                  close(input); close(output);
              halt;
            end;
        end;
    end;
  writeln(0);
  close(input); close(output);
end.
]]>