Java-ohjelma merkkijonon kaikkien permutaatioiden laskemiseksi

Tässä esimerkissä opitaan laskemaan kaikki Java-merkkijonon permutaatiot.

Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Java-ohjelmointiaiheista:

  • Java-merkkijono
  • Java-rekursio
  • Java-skanneriluokka

Merkkijonon permutaatio tarkoittaa kaikkia mahdollisia uusia merkkijonoja, jotka voidaan muodostaa vaihtamalla merkkijonon merkkien sijainti. Esimerkiksi merkkijonossa ABC on permutaatioita (ABC, ACB, BAC, BCA, CAB, CBA) .

Esimerkki: Java-ohjelma, jolla saat kaiken merkkijonon muunnoksen

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

Tuotos

 Kirjoita merkkijono: ABC ABC Permutations of ABC: (ACB, BCA, ABC, CBA, BAC, CAB)

Java: ssa olemme käyttäneet rekursiota laskemaan kaikki merkkijonon permutaatiot. Tässä tallennetaan permutaatio sarjaan. Joten päällekkäisiä kopioita ei tule olemaan.

Mielenkiintoisia artikkeleita...