Program Java pentru a calcula toate permutările șirului

În acest exemplu, vom învăța să calculăm toate permutările șirului în Java.

Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele despre următoarele subiecte de programare Java:

  • Șir Java
  • Recursiune Java
  • Clasa de scanare Java

Permutarea șirului înseamnă toate șirurile noi posibile care pot fi formate prin schimbarea poziției caracterelor șirului. De exemplu, șirul ABC are permutări (ABC, ACB, BAC, BCA, CAB, CBA) .

Exemplu: program Java pentru a obține toată permutarea unui șir

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

Ieșire

 Introduceți șirul: ABC Permutări ale ABC: (ACB, BCA, ABC, CBA, BAC, CAB)

În Java, am folosit recursiunea pentru a calcula toate permutările unui șir. Aici, stocăm permutarea într-un set. Deci, nu va exista nicio permutare duplicată.

Articole interesante...