Πρόγραμμα Java για τον υπολογισμό όλων των παραλλαγών της συμβολοσειράς

Σε αυτό το παράδειγμα, θα μάθουμε να υπολογίζουμε όλες τις παραλλαγές της συμβολοσειράς στην Java.

Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες εφαρμογές προγραμματισμού Java:

  • Συμβολοσειρά Java
  • Αναδρομή Java
  • Τάξη σαρωτή Java

Η παραλλαγή της συμβολοσειράς σημαίνει όλες τις πιθανές νέες συμβολοσειρές που μπορούν να σχηματιστούν αλλάζοντας τη θέση των χαρακτήρων της συμβολοσειράς. Για παράδειγμα, η συμβολοσειρά ABC έχει παραλλαγές (ABC, ACB, BAC, BCA, CAB, CBA) .

Παράδειγμα: Πρόγραμμα Java για λήψη όλων των παραλλαγών μιας συμβολοσειράς

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

Παραγωγή

 Εισαγάγετε τη συμβολοσειρά: ABC Permutations of ABC: (ACB, BCA, ABC, CBA, BAC, CAB)

Στην Java, χρησιμοποιήσαμε την αναδρομή για να υπολογίσουμε όλες τις παραλλαγές μιας συμβολοσειράς. Εδώ, αποθηκεύουμε τη μετάθεση σε ένα σύνολο. Επομένως, δεν θα υπάρχει διπλή αλλαγή.

ενδιαφέροντα άρθρα...