Program Java untuk Mengira semua permutasi rentetan

Dalam contoh ini, kita akan belajar menghitung semua permutasi rentetan di Java.

Untuk memahami contoh ini, anda harus mempunyai pengetahuan mengenai topik pengaturcaraan Java berikut:

  • Rentetan Java
  • Pengembalian Java
  • Kelas Pengimbas Java

Permutasi rentetan bermaksud semua kemungkinan rentetan baru yang dapat dibentuk dengan menukar kedudukan watak-watak tali. Contohnya, rentetan ABC mempunyai permutasi (ABC, ACB, BAC, BCA, CAB, CBA) .

Contoh: Program Java untuk mendapatkan semua permutasi rentetan

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

Pengeluaran

 Masukkan rentetan: Permutasi ABC ABC: (ACB, BCA, ABC, CBA, BAC, CAB)

Di Jawa, kami telah menggunakan rekursi untuk menghitung semua permutasi rentetan. Di sini, kami menyimpan permutasi dalam satu set. Jadi, tidak akan ada permutasi pendua.

Artikel menarik...