Java-Programm zum Berechnen aller Permutationen der Zeichenfolge

In diesem Beispiel lernen wir, alle Permutationen der Zeichenfolge in Java zu berechnen.

Um dieses Beispiel zu verstehen, sollten Sie die folgenden Java-Programmierthemen kennen:

  • Java String
  • Java-Rekursion
  • Java-Scannerklasse

Permutation der Zeichenfolge bedeutet alle möglichen neuen Zeichenfolgen, die durch Vertauschen der Position der Zeichen der Zeichenfolge gebildet werden können. Beispielsweise hat die Zeichenfolge ABC Permutationen (ABC, ACB, BAC, BCA, CAB, CBA) .

Beispiel: Java-Programm zum Abrufen der gesamten Permutation eines Strings

 import java.util.HashSet; import java.util.Scanner; import java.util.Set; class Main ( public static Set getPermutation(String str) ( // create a set to avoid duplicate permutation Set permutations = new HashSet(); // check if string is null if (str == null) ( return null; ) else if (str.length() == 0) ( // terminating condition for recursion permutations.add(""); return permutations; ) // get the first character char first = str.charAt(0); // get the remaining substring String sub = str.substring(1); // make recursive call to getPermutation() Set words = getPermutation(sub); // access each element from words for (String strNew : words) ( for (int i = 0;i<=strNew.length();i++)( // insert the permutation to the set permutations.add(strNew.substring(0, i) + first + strNew.substring(i)); ) ) return permutations; ) public static void main(String() args) ( // create an object of scanner class Scanner input = new Scanner(System.in); // take input from users System.out.print("Enter the string: "); String data = input.nextLine(); System.out.println("Permutations of " + data + ": " + getPermutation(data)); ) )

Ausgabe

 Geben Sie die Zeichenfolge ein: ABC Permutationen von ABC: (ACB, BCA, ABC, CBA, BAC, CAB)

In Java haben wir die Rekursion verwendet, um alle Permutationen eines Strings zu berechnen. Hier speichern wir die Permutation in einer Menge. Es wird also keine doppelte Permutation geben.

Interessante Beiträge...