Computer >> Máy Tính >  >> Lập trình >> Java

In tất cả các hoán vị của một chuỗi trong Java

Sau đây là chương trình Java để in tất cả các hoán vị của một chuỗi -

Ví dụ

public class Demo{
   static void print_permutations(String my_str,String my_ans){
      if (my_str.length() == 0){
         System.out.print(my_ans + " ");
         return;
      }
      boolean my_arr[] = new boolean[26];
      for (int i = 0; i < my_str.length(); i++){
         char ch = my_str.charAt(i);
         String remaining_str = my_str.substring(0, i) + my_str.substring(i + 1);
         if (my_arr[ch - 'a'] == false)
         print_permutations(remaining_str, my_ans + ch);
         my_arr[ch - 'a'] = true;
      }
   }
   public static void main(String[] args){
      String my_str = "hey";
      System.out.println("The permutation of the string are :");
      print_permutations(my_str, "");
   }
}

Đầu ra

The permutation of the string are :
hey hye ehy eyh yhe yeh

Một lớp có tên Demo chứa một hàm tĩnh ‘print_permutations’, hàm này sẽ kiểm tra xem một chuỗi có trống hay không và nếu có thì kết quả sẽ được in. Bây giờ, một mảng Boolean có tên ‘my_arr’ được gán với kích thước là 36, trong đó các giá trị 'false' được lưu trữ theo mặc định. Bất cứ khi nào một bảng chữ cái được sử dụng, chỉ mục của nó trong mảng sẽ được thay đổi thành 'true'.

Vòng lặp 'for' được sử dụng để lặp qua độ dài của chuỗi và ký tự thứ i của chuỗi được kiểm tra. Phần còn lại của chuỗi không có ký tự thứ i được gán cho chuỗi có tên 'còn lại_str'. Nếu ký tự không được sử dụng, một lệnh gọi đệ quy đến hàm sẽ xảy ra. Nếu không, không có lệnh gọi hàm nào xảy ra. Trong hàm chính, một chuỗi được xác định và hàm được gọi trên chuỗi này.