Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java เพื่อพิมพ์พีชคณิตที่แตกต่างของสตริง


ในการพิมพ์การเรียงสับเปลี่ยนของสตริงที่ชัดเจน โปรแกรม Java มีดังต่อไปนี้ −

ตัวอย่าง

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

ผลลัพธ์

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

คลาสชื่อ Demo มีฟังก์ชันบูลีนชื่อ 'is_present' ซึ่งจะตรวจสอบเพื่อดูว่ามี stringis อยู่จริงหรือไม่ คืนค่าจริงหรือเท็จขึ้นอยู่กับว่าสตริงมีอักขระบางตัวหรือไม่ ฟังก์ชันอื่นที่ชื่อว่า 'distinct_pattern' จะสร้างรายการอาร์เรย์

มีการกำหนดสตริงอื่นชื่อ 'rem_str' ซึ่งจัดเก็บสตริงย่อยของสตริง 'distinct_function' นี้ถูกเรียกโดยส่งผ่าน 'rem_str' ด้วยวิธีนี้ สตริงจะถูกวนซ้ำ และตำแหน่งของอักขระทุกตัวจะถูกตรวจสอบ ก่อนที่จะสร้างการเรียงสับเปลี่ยนที่แตกต่างออกไป ด้วยวิธีนี้ จะหลีกเลี่ยงสิ่งซ้ำซ้อนทั้งหมด ในท้ายที่สุด การเรียงสับเปลี่ยนที่ไม่ซ้ำกันทั้งหมดจะแสดงบนคอนโซล ฟังก์ชันหลักกำหนดสตริง และเรียกใช้ฟังก์ชัน 'distinct_pattern' ในสตริงนี้ เอาต์พุตที่เกี่ยวข้องจะแสดงบนคอนโซล