Die vollständige Anordnung der Zeichenfolgen, der spezifische Inhalt ist wie folgt
Geben Sie eine Zeichenfolge ein und drucken Sie alle Arrangements von Zeichen in der Zeichenfolge in der Wörterbuchreihenfolge aus. Geben Sie beispielsweise die String ABC ein, drucken Sie alle Saiten ABC, ACB, BCA, CAB und CBA aus, die durch die Zeichen A, B, c angeordnet werden können. Bitte geben Sie die alphabetischen Bestellung aus.
Übernahme der Idee der Rekursion:
Teilen Sie Strings, die vollständig in zwei Teile angeordnet werden müssen:
(1) das erste Zeichen der Zeichenfolge;
(2) alle Zeichen nach dem ersten Charakter;
Finden Sie alle Zeichen, die in der ersten Position erscheinen können. tauschen Sie den ersten Charakter und die folgenden Zeichen gleichzeitig aus;
Beheben Sie den ersten Charakter und finden Sie die vollständige Anordnung aller Zeichen nach dem ersten Charakter. Alle Zeichen, die dem ersten Charakter folgen, können in zwei Teile unterteilt werden.
Java -Code:
Import Java.util.ArrayList; import Java.util.Treeset; öffentliche Klasse -Lösung {public arrayList <string> Permutation (String Str) {ArrayList <string> res = new ArrayList <string> (); if (str == null || str.length () == 0) {return res; } char [] charArray = str. tocharArray (); // Ausgabe in der Reihenfolge der Eingabe -Wörterbuch -Treeset <String> tempres = new treeset <string> (); PermutationCore (Chararray, Tempres, 0); Res.Addall (Tempres); return res; } private void PermutationCore (char [] charArray, treeset <string> tempres, int loc) {if (charArray == null || chararray.length == 0 || loc <0 || loc> charArray.Length-1) {return; } if(loc==charArray.length-1) { tempRes.add(String.valueOf(charArray));//Recursive exit} else { for(int i=loc;i<charArray.length;i++) { swap(charArray,i,loc);//Swap the first character with the following characters PermutationCore(charArray,tempRes,loc+1);//Sort the following characters Swap (Chararray, I, loc); // tauschen Sie die zuvor ausgetauten Zeichen zurück, so dass das erste Zeichen mit anderen Zeichen ausgetauscht werden kann. Chararray [i] = Chararray [j]; Chararray [j] = temp; }}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.