Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
Delphi 10.4 Sydney
|
AW: gleiche Zahlenfolgen im Array untersuchen
7. Okt 2011, 19:16
Hab auch noch einen:
Delphi-Quellcode:
function FindSubList (const SubList, List: TStringList; const Index: integer): integer;
var
I, J, A, B: integer;
begin
Result:= 0;
A:= List.Count;
B:= SubList.Count;
I:= Index;
if I < 0 then Exit;
if B = 0 then Exit;
while (Result = 0) and (I <= A-B) do
begin
J:= 0;
if (List[I] = SubList[J]) then
begin
while (J < B-1) and (List[I+J+1] = SubList[J+1]) do Inc(J);
if J = B-1 then Result:= B;
end;
Inc(I);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
SubList, List: TStringList;
I, J, K, N, A: integer;
Result: string;
begin
N:= 0;
Result:= '';
List:= TStringList.Create;
List.Add('1');
List.Add('2');
List.Add('3');
List.Add('4');
List.Add('9');
List.Add('8');
List.Add('7');
List.Add('1');
List.Add('2');
List.Add('3');
List.Add('4');
List.Add('6');
List.Add('2');
List.Add('3');
List.Add('4');
List.Add('9');
List.Add('8');
List.Add('7');
SubList:= TStringList.Create;
for I:= 0 to List.Count-2 do
for J:= I+1 to List.Count-1 do
begin
SubList.Clear;
for K:= I to J do SubList.Add(List[K]);
A:= FindSubList(SubList, List, J);
if A > N then
begin
N:= A;
Result:= SubList.Text;
end;
end;
SubList.Free;
List.Free;
ShowMessage ('Tiefe= '+IntToStr(N)+#13+Result);
end;
Geändert von Bjoerk ( 7. Okt 2011 um 20:07 Uhr)
Grund: Ausgabe
|
|
Zitat
|