Полное расположение строк, конкретный контент заключается в следующем
Введите строку и распечатайте все аранжировки символов в строке в порядке словаря. Например, введите строку ABC, распечатайте все строки ABC, ACB, BCA, CAB и CBA, которые могут быть организованы символами A, B, c. Пожалуйста, выведите результаты в алфавитном порядке.
Принятие идеи рекурсии:
Разделите струны, которые должны быть полностью расположены на две части:
(1) первый символ строки;
(2) все символы после первого персонажа;
Найдите всех символов, которые могут появиться в первой позиции; обмениваться первым персонажем и следующими символами сразу;
Исправьте первый персонаж и найдите полное расположение всех символов после первого персонажа. Все символы, следующие за первым персонажем, можно разделить на две части;
Код Java:
импортировать java.util.arraylist; импортировать java.util.treeset; Общедоступный класс решения {public arraylist <string> перестановка (string str) {arraylist <string> res = new ArrayList <string> (); if (str == null || str.length () == 0) {return res; } char [] chararray = str.tochararray (); // Вывод в порядке входного словаря reeset <string> tempres = new Treeset <string> (); Перестановка (Chararray, Tempres, 0); res.addall (Tempres); вернуть Res; } private void-перестановка (char [] chararray, treeset <string> tempres, int loc) {if (chararray == null || chararray.length == 0 || loc <0 || loc> chararray.length-1) {return; } if (loc == chararray.length-1) {tempres.add (string.valueof (chararray)); // рекурсивный выход} else {for (int i = loc; i <chararray.length; i ++) {swap (chararray, i, loc); // Swap первого символа с следующими символами (chararray, loc); // Swap первого символа с следующими символами (chararray, tempres, loc/// locpres; Swap (chararray, i, loc); // Обратно от обмененных символов, чтобы первого символа можно было обменять с другими символами}}}} частного обмена пустыми (char [] chararray, int i, int j) {char temp = chararray [i]; chararray [i] = chararray [j]; chararray [j] = temp; }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.