Chương trình Java để tính toán tất cả các hoán vị của chuỗi

Trong ví dụ này, chúng ta sẽ học cách tính tất cả các hoán vị của chuỗi trong Java.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình Java sau:

  • Chuỗi Java
  • Đệ quy Java
  • Lớp máy quét Java

Hoán vị của chuỗi có nghĩa là tất cả các chuỗi mới có thể được hình thành bằng cách hoán đổi vị trí của các ký tự trong chuỗi. Ví dụ, chuỗi ABC có các hoán vị (ABC, ACB, BAC, BCA, CAB, CBA) .

Ví dụ: Chương trình Java để lấy tất cả các hoán vị của một chuỗi

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

Đầu ra

 Nhập chuỗi: ABC Hoán vị của ABC: (ACB, BCA, ABC, CBA, BAC, CAB)

Trong Java, chúng tôi đã sử dụng đệ quy để tính toán tất cả các hoán vị của một chuỗi. Ở đây, chúng tôi lưu trữ hoán vị trong một tập hợp. Vì vậy, sẽ không có hoán vị trùng lặp.

thú vị bài viết...