Registriert seit: 10. Jun 2003
Ort: Berlin
9.586 Beiträge
Delphi 11 Alexandria
|
Re: Ziehen mit Zurücklegen aber ohne Reihenfolge
28. Mär 2009, 18:03
Wie wäre es so? (Geht ab Delphi 2005)
Delphi-Quellcode:
procedure TForm164.Button1Click(Sender: TObject);
type
TMyCharSet = set of Char;
procedure GetCombinations(const Data: TMyCharSet; Count: Integer;
Results: TStrings; CurChar: Char; CurPrefix: String = ''; CurPos: Integer = 1);
var
Cur: Char;
begin
for Cur in Data do
if Cur >= CurChar then
if CurPos < Count then
GetCombinations(Data, Count, Results, Cur, CurPrefix + Cur, CurPos + 1)
else
Results.Add(CurPrefix + Cur);
end;
var
ResultList: TStringList;
begin
ResultList := TStringList.Create;
GetCombinations(['A', 'B', 'C', 'D'], 3, ResultList, 'A');
ShowMessage(ResultList.Text);
ResultList.Free;
end;
Sebastian Jänicke Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
|
|
Zitat
|