La disposición completa de las cadenas, el contenido específico es el siguiente
Ingrese una cadena e imprima todos los arreglos de caracteres en la cadena en el orden de diccionario. Por ejemplo, ingrese la cadena ABC, imprima todas las cadenas ABC, ACB, BCA, CAB y CBA que pueden ser organizadas por los personajes A, B, C. Excelente el orden alfabético de los resultados.
Adoptando la idea de recursión:
Divide las cadenas que deben estar completamente dispuestas en dos partes:
(1) el primer carácter de la cadena;
(2) todos los personajes después del primer personaje;
Encuentre todos los personajes que puedan aparecer en la primera posición; intercambiar el primer personaje y los siguientes personajes a la vez;
Arregle el primer personaje y encuentre la disposición completa de todos los personajes después del primer personaje. Todos los personajes que siguen al primer personaje se pueden dividir en dos partes;
Código Java:
import java.util.arrayList; import java.util.treeset; Solución de clase pública {public ArrayList <String> Permutation (String Str) {ArrayList <String> res = new ArrayList <String> (); if (str == null || str.length () == 0) {return res; } char [] chararray = str.toCarArray (); // Salida en orden del diccionario de entrada TreeSet <String> tempres = new TreeSet <String> (); PermutationCore (Chararray, Tempres, 0); res.addall (tempres); regresar res; } private void PermutationCore (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)); // recursivo salga} else {for (int i = loc; i <chararray.length; i ++) {swap (chararray, i, loc); // swap el primer caracteres con el siguiente caracteres permutationcore (chararray, temps, local,/1); Swap de caracteres (CharArray, I, Loc); // intercambia los caracteres intercambiados previamente para que el primer personaje se pueda intercambiar con otros caracteres}}}} private void swap (char [] chararray, int i, int j) {char temp = chararray [i]; CharArray [i] = CharArray [j]; CharArray [j] = temp; }}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.