Könnte noch fehlerhaft sein, die Beispielzeichenkette aus dem Startpost findet der Code aber:
Delphi-Quellcode:
function GetBiggestTwin(aText : String) : String;
var
window, offset, TextLen : Integer;
TestText, RestText : String;
begin
TextLen := Length(aText);
Result := '';
for window := (TextLen div 2) downto 1 do begin
offset := 1;
while window <= (TextLen - ((offset-1)+window)) do begin
TestText := Copy(aText, offset, window);
RestText := Copy(aText, offset+window, Textlen);
if Pos(TestText, RestText) > 0 then begin
Result := TestText;
Exit;
end;
inc(offset);
end;
end;
end;