English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Beispiel werden wir lernen, wie man alle Permutationen eines Strings in Java berechnet.
Um diesen Beispiel zu verstehen, sollten Sie die folgenden Kenntnisse habenJava-ProgrammierungThema:
Die Permutation eines Strings ist die Summe aller möglichen neuen Strings, die durch Vertauschen der Zeichen im String erstellt werden können. Zum Beispiel, der String ABC haten Permutationen [ABC, ACB, BAC, BCA, CAB, CBA].
import java.util.HashSet; import java.util.Scanner; import java.util.Set; class Main { public static Set<String> getPermutation(String str) { //Erstelle eine Set-Kollektion, um doppelte Permutationen zu vermeiden Set<String> permutations = new HashSet<String>(); //Überprüfe, ob der String leer ist if (str == null) { return null; } else if (str.length() == 0) { //Rekursive Abbruchbedingung permutations.add(""); return permutations; } //Erhalte den ersten Buchstaben char first = str.charAt(0); //Erhalte den verbleibenden Teilstring String sub = str.substring(1); //Rekursive Aufruf von getPermutation() Set<String> words = getPermutation(sub); //Durchlaufe words for (String strNew : words) { for (int i = 0; i <= strNew.length(); i++{ //Die Permutation wird in die Set-Kollektion eingefügt permutations.add(strNew.substring(0, i)) + first + strNew.substring(i)); } } return permutations; } public static void main(String[] args) { //Erstellt ein Objekt der Klasse Scanner Scanner input = new Scanner(System.in); // Nimmt die Eingabe des Benutzers an System.out.print("Eingabezeichenfolge: "); String data = input.nextLine(); System.out.println(data + " \ + getPermutation(data)); } }
Ausgabeergebnis
Eingabezeichenfolge: ABC Die Permutationen von ABC lauten: [ACB, BCA, ABC, CBA, BAC, CAB]
In Java verwenden wir Rekursion, um alle Permutationen von Zeichenfolgen zu berechnen. Hier speichern wir die Permutationen im Set. Daher gibt es keine wiederholten Permutationen.