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

Chương trình Java để in các hoán vị riêng biệt của một chuỗi

Để in các hoán vị riêng biệt của một chuỗi, chương trình Java như sau -

Ví dụ

import java.util.ArrayList;
public class Demo{
   static boolean is_present(String my_str, ArrayList<String> rem){
      for (String str : rem){
         if (str.equals(my_str))
         return true;
      }
      return false;
   }
   static ArrayList<String> distinct_pattern(String str){
      if (str.length() == 0){
         ArrayList<String> base_Val = new ArrayList<>();
         base_Val.add("");
         return base_Val;
      }
      char ch = str.charAt(0);
      String rem_str = str.substring(1);
      ArrayList<String> prev_str = distinct_pattern(rem_str);
      ArrayList<String> rem = new ArrayList<>();
      for (String my_str : prev_str){
         for (int i = 0; i <= my_str.length(); i++){
            String f = my_str.substring(0, i) + ch + my_str.substring(i);
            if (!is_present(f, rem))
            rem.add(f);
         }
      }
      return rem;
   }
   public static void main(String[] args){
      String my_str = "mnqm";
      System.out.println("The distinct permutations of the string are ");
      System.out.println(distinct_pattern(my_str));
   }
}

Đầu ra

The distinct permutations of the string are
[mnqm, nmqm, nqmm, mqnm, qmnm, qnmm, mqmn, qmmn, mnmq, nmmq, mmnq, mmqn]

Một lớp có tên Demo chứa một hàm Boolean có tên ‘is_present’ để kiểm tra xem chuỗi có thực sự hiện diện hay không. Nó trả về true hoặc false tùy thuộc vào việc chuỗi có một số ký tự hoặc không. Một hàm khác có tên là ‘difference_pattern’ tạo một danh sách mảng.

Một chuỗi khác được định nghĩa, có tên là ‘rem_str’, lưu trữ chuỗi con của chuỗi. ‘Distinc_ Chức năng ’này được gọi bằng cách chuyển‘ rem_str ’. Bằng cách này, chuỗi được lặp lại và mọi vị trí của ký tự đều được kiểm tra, trước khi tạo một hoán vị riêng biệt khác. Bằng cách này, các dị nguyên được tránh. Cuối cùng, tất cả các hoán vị duy nhất được hiển thị trên bảng điều khiển. Hàm Themain định nghĩa chuỗi và hàm ‘diff_pattern’ được gọi trên chuỗi này. Đầu ra có liên quan được hiển thị trên bảng điều khiển.