Java-programma om alle permutaties van de string te berekenen

In dit voorbeeld zullen we leren om alle permutaties van de string in Java te berekenen.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:

  • Java-tekenreeks
  • Java-recursie
  • Java-scannerklasse

Met permutatie van de string worden alle mogelijke nieuwe strings bedoeld die kunnen worden gevormd door de positie van de karakters van de string te verwisselen. String ABC heeft bijvoorbeeld permutaties (ABC, ACB, BAC, BCA, CAB, CBA) .

Voorbeeld: Java-programma om alle permutaties van een string te krijgen

 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)); ) )

Uitvoer

 Voer de tekenreeks in: ABC-permutaties van ABC: (ACB, BCA, ABC, CBA, BAC, CAB)

In Java hebben we de recursie gebruikt om alle permutaties van een string te berekenen. Hier slaan we de permutatie op in een set. Er zal dus geen dubbele permutatie zijn.

Interessante artikelen...