Рубрики

Java-программа для печати всех перестановок данной строки

Перестановка, также называемая «номером расположения» или «порядком», представляет собой перестановку элементов упорядоченного списка S в соответствие один к одному с самим S. Строка длиной n имеет n! перестановка.
Источник: Mathword ( http://mathworld.wolfram.com/Permutation.html )

Ниже приведены перестановки строки ABC.
ABC ACB BAC BCA CBA CAB

// Java-программа для печати всех перестановок
// заданная строка.

public class Permutation {

    public static void main(String[] args)

    {

        String str = "ABC";

        int n = str.length();

        Permutation permutation = new Permutation();

        permutation.permute(str, 0, n - 1);

    }

  

    /**

     * permutation function

     * @param str string to calculate permutation for

     * @param l starting index

     * @param r end index

     */

    private void permute(String str, int l, int r)

    {

        if (l == r)

            System.out.println(str);

        else {

            for (int i = l; i <= r; i++) {

                str = swap(str, l, i);

                permute(str, l + 1, r);

                str = swap(str, l, i);

            }

        }

    }

  

    / **

     * Обмен персонажей на позиции

     * @param строковое значение

     * @param I позиция 1

     * @парам j позиция 2

     * @return поменялась строка

     * /

    public String swap(String a, int i, int j)

    {

        char temp;

        char[] charArray = a.toCharArray();

        temp = charArray[i];

        charArray[i] = charArray[j];

        charArray[j] = temp;

        return String.valueOf(charArray);

    }

}

  
// Этот код предоставлен Михиром Джоши

Выход:

ABC
ACB
BAC
BCA
CBA
CAB

Пожалуйста, обратитесь к полной статье на Написать программу для печати всех перестановок данной строки для более подробной информации!

Рекомендуемые посты:

Java-программа для печати всех перестановок данной строки

0.00 (0%) 0 votes