menusearch
javapro.ir

به دست آوردن همه جایگشت های یک String در جاوا

جستجو
شنبه ۱۳ خرداد ۱۴۰۲ | ۱۲:۴۲:۳
۱۳۹۶/۷/۳۰ یکشنبه
(4)
(0)
به دست آوردن همه جایگشت های یک String در جاوا
به دست آوردن همه جایگشت های یک String در جاوا
مسئله: برنامه ای به زبان جاوا بنویسید که همه جایگشت های کاراکترهای یک رشته(String) در جاوا را به دست آورد.


پاسخ:
import java.util.ArrayList;
import java.util.Scanner;



// Java Program to find all permutations of a String


public class StringPermutation {
   public static ArrayList<String> permutationFinder(String str) {
       ArrayList<String> perm = new ArrayList<String>();
        Handling error scenarios
       if (str == null) {
           return null;
       } else if (str.length() == 0) {
           perm.add("");
           return perm;
       }
       char initial = str.charAt(0); first character
       String rem = str. substring (1); Full string without first character
       ArrayList<String> words = permutationFinder(rem);
       for (String strNew : words) {
           for (int i = 0; i <= strNew.length(); i++) {
               perm.add(char insert (strNew, initial, i));
           }
       }
       return perm;
   }

   public static String char insert (String str, char c, int j) {
       String begin = str. substring (0, j);
       String end = str. substring (j);
       return begin + c + end;
   }

   public static void main(String[] args) {

       Scanner input = new Scanner(System.in);
       System.out. print ln("Enter your a String:");
       String str = input.next();
       System.out. print ln("\nPermutations for " + str + " are: \n"
               + permutationFinder(str));
   }
}
 

خروجی(output):یک نمونه تست شده برنامه به صورت زیر است.
 
Enter your a String:
abc

Permutations for abc are:
[abc, bac, bca, acb, cab, cba]
 

در برنامه بالا اگر ما رشته "abc" را به عنوان ورودی بدهیم ،برنامه جایگشت کاراکترهای این رشتهرا به صورت زیر تولید می‌کند:
abc, bac, bca, acb, cab, cba

جهت دانلود سورس کد مثال بالا روی StringPermutation.java کلیک کنید.

کانال تلگرام آموزش جاوا 
 
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.
هدر سایت
زودتر از دیگران از جدیدترین مطالب آموزشی برنامه نویسی جاواپرو اطلاع پیدا کن
 شاید برای شما کم اهمیت باشد; اما حمایت مالی به جاواپرو جان می‌دهد
سوالات متداول برنامه نویسی