In diesem Artikel wird das Problem der Implementierung von Java -Implementierungen und Kombinationen für Ihre Referenz vorgestellt. Der spezifische Inhalt ist wie folgt
Import Java.util.ArrayList; Import Java.util.Collections; /*** 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 und drucken Sie dann alle Saiten ABC, ACB, BAC, * BCA, CAB und CBA aus, die von den Zeichen A, B, c angeordnet werden können. * * @author pomay * * */ public class Solution_stringarrange {public arrayList <string> Permutation (String str) {if (str == null) return null; ArrayList <string> list = new ArrayList <string> (); char [] pstr = str. tocharArray (); Permutation (PSTR, 0, Liste); Sammelns.sort (Liste); Rückgabeliste; } statische Voidpermutation (char [] str, int i, ArrayList <string> list) {// if leer if (str == null) return; // Wenn ich auf das letzte Zeichen verweist, wenn (i == str.length - 1) {if (list.contains (string.ValueOf (str))) return; list.add (string.Valueof (str)); } else {// i zeigt auf das erste Zeichen der Zeichenfolge, die derzeit die Permutationsoperation für (int j = i; j <str.length; j ++) {// das erste Zeichen der Zeichenfolge austauschen, die Permutationsoperation mit allen folgenden Zeichen für Zeichen temp = str [j] austauschen; Str [j] = str [i]; Str [i] = temp; // Nach dem Austausch eine rekursive Anordnung der Saiten nach i. Permutation (STR, I + 1, Liste); // Nachdem jede Runde vorbei ist, wechseln Sie zurück, um die nächste Runde der Arrangement -Temp = Str [j] durchzuführen. Str [j] = str [i]; Str [i] = temp; }}} public static void main (String [] args) {string str = "aab"; Lösung_Stringarrange Changestring = new Solution_stringarrange (); ArrayList <string> list = Changestring.permutation (str); für (int i = 0; i <list.size (); i ++) {System.out.print (list.get (i)+""); }}} Kombination:
Wählen Sie entweder das erste Zeichen in der Länge-Zeichenfolge N aus, dann wählen Sie M-1-Zeichen in den verbleibenden Länge von N-1 oder wählen Sie nicht das erste Zeichen in der Länge-Zeichenfolge N aus und wählen Sie dann m Zeichen in den verbleibenden Länge von N-1 aus
Import Java.util.ArrayList; importieren java.util.list; /*** Geben Sie eine Zeichenfolge ein und drucken Sie alle Kombinationen von Zeichen in der Zeichenfolge in der Wörterbuchreihenfolge aus. Geben Sie beispielsweise die Zeichenfolge ABC ein, drucken Sie alle Saiten A, B, C, AB, AC, BC *, ABC aus. Frage, um die Kombination von n Zeichen mit Länge m * * @author pomay * */ public class Solution_stringcombination {// Die Kombination aller Zeichen in einer Zeichenfolge abc> a, b, c, ab, ac, bc, abc public static void Perm (String) {list <string> result = new Arraylist <String> () zu finden; // Beginnen Sie mit einem für (int i = 1; i <= sength (); i ++) {Kombination (s, i, result); }} // m Zeichen m Zeichen aus der String s public static void -Kombination (String S, int M, List <String> Ergebnis) {// if m == 0, dann endet der rekursive. Ausgabestromergebnis if (m == 0) {für (int i = 0; i <result.size (); i ++) {System.out.print (result.get (i)); } System.out.print (","); zurückkehren; } if (s.Length ()! = 0) {// Wählen Sie das aktuelle Elementergebnis. // Substring -Verwendung, fangen Sie die String -Kombination von 1 bis Ende der N -Kombination ab (substring (1, s.Length ()), m - 1, Ergebnis); result.remove (result.size () - 1); // Wählen Sie nicht die aktuelle Elementkombination (substring (1, s.Length ()), m, Ergebnis); }} public static void main (String [] args) {string str = "abc"; Perm (str); }}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.