В этой статье представлена проблема реализации и комбинации Java для вашей ссылки. Конкретный контент заключается в следующем
импортировать java.util.arraylist; импортировать java.util.collections; /*** Введите строку и распечатайте все аранжировки символов в строке в порядке словаря. Например, введите строку ABC, затем распечатайте все строки ABC, ACB, BAC, * BCA, CAB и CBA, которые могут быть организованы символами A, B, c. * * @author pomay * */ public class solution_stringarrange {public arraylist <string> перестановка (String str) {if (str == null) return null; Arraylist <string> list = new ArrayList <string> (); char [] pstr = str.thararray (); Перестановка (PSTR, 0, список); Collections.sort (список); вернуть список; } static void перестановка (char [] str, int i, arraylist <string> list) {// Если пусто if (str == null) return; // Если я указывает на последний символ if (i == str.length - 1) {if (list.contains (string.valueof (str))) return; list.add (string.valueof (str)); } else {// i указывает на первый символ строки, в настоящее время выполняющий операцию перестановки для (int j = i; j <str.length; j ++) {// обмен первым символом строки, выполняющий операцию перестановки со всеми следующими символами char temp = str [j]; str [j] = str [i]; str [i] = temp; // После обмена выполните рекурсивное расположение струн после i. Перестановка (str, i + 1, list); // После окончания каждого раунда переключитесь обратно, чтобы выполнить следующий раунд аранжировки temp = str [j]; str [j] = str [i]; str [i] = temp; }}} public static void main (string [] args) {string str = "aab"; Solution_stringarrange Changestring = New Solution_StringArrange (); Arraylist <string> list = changestring.permution (str); for (int i = 0; i <list.size (); i ++) {System.out.print (list.get (i)+""); }}} Комбинация:
Либо выберите первый символ в строке длины n, затем выберите символы M-1 в оставшихся строках длины N-1 или не выбирайте первый символ в строке длины n, затем выберите M символов в оставшихся строках длины n-1
импортировать java.util.arraylist; импортировать java.util.list; /*** Введите строку и распечатайте все комбинации символов в строке в порядке словаря. Например, введите строку ABC, распечатайте все строки A, B, C, AB, AC, BC *, ABC. Вопрос, чтобы найти комбинацию n символов с длиной m * * @author pomay * */ public class solution_stringcombination {// Найти комбинацию всех символов в строке ABC> a, b, c, ab, ac, bc, abc public void void perm (строки s) {list <string> result = new ArrayList <string> ();); // начинать с одного для (int i = 1; i <= s.length (); i ++) {комбинация (s, i, result); }} // Выберите M Символ из общедоступной статической статической комбинации void (String S, int M, List <string> result) {// if m == 0, то рекурсивные концы. Выходной текущий результат if (m == 0) {for (int i = 0; i <result.size (); i ++) {System.out.print (result.get (i)); } System.out.print (","); возвращаться; } if (s.length ()! = 0) {// выберите текущий элемент result.add (s.charat (0) + ""); // Использование подстроки, перехватывает комбинацию строки от 1 до конца n комбинации (S.Substring (1, S.Length ()), M - 1, результат); result.remove (result.size () - 1); // не выбирайте текущую комбинацию элементов (S.Substring (1, S.Length ()), M, Result); }} public static void main (string [] args) {string str = "abc"; перми (str); }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.