Este artículo presenta el problema de la implementación de Java de disposición de cadenas y combinación para su referencia. El contenido específico es el siguiente
import java.util.arrayList; import java.util.collections; /*** Ingrese una cadena e imprima todos los arreglos de caracteres en la cadena en orden de diccionario. Por ejemplo, ingrese la cadena ABC, luego imprima todas las cadenas ABC, ACB, BAC, * BCA, CAB y CBA que pueden organizar los caracteres A, B, C. * * @author pomay * */ public class Solution_Stringarrange {public MatrayList <String> Permutation (String Str) {if (str == null) return null; ArrayList <String> list = new ArrayList <String> (); char [] pstr = str.toCarArray (); Permutación (PSTR, 0, lista); Colección.sort (lista); lista de devolución; } Permutación void estática (char [] str, int i, arrayList <String> list) {// si está vacío if (str == null) return; // Si apunta al último carácter if (i == str.length - 1) {if (list.contains (string.valueOf (str))) return; list.add (string.ValueOf (str)); } else {// I señala el primer carácter de la cadena que actualmente realiza la operación de permutación para (int j = i; j <str.length; j ++) {// intercambia el primer carácter de la cadena que realiza la operación de permutación con todos los siguientes caracteres char temp = str [j]; str [j] = str [i]; str [i] = temp; // Después del intercambio, realice la disposición recursiva de las cuerdas después de i. Permutación (str, i + 1, lista); // Después de que cada ronda termine, vuelva hacia atrás para realizar la siguiente ronda de disposición temp = str [j]; str [j] = str [i]; str [i] = temp; }}} public static void main (string [] args) {string str = "aab"; SOUft_Stringarrange ChangeString = new Solution_Stringarrange (); ArrayList <String> list = ChangeString.Permutation (Str); for (int i = 0; i <list.size (); i ++) {system.out.print (list.get (i)+""); }}} combinación:
Seleccione el primer carácter en la cadena de longitud n, luego seleccione los caracteres M-1 en las cadenas restantes de longitud N-1, o no seleccione el primer carácter en la cadena de longitud n, luego seleccione los caracteres M en las cadenas restantes de longitud N-1
import java.util.arrayList; import java.util.list; /*** Ingrese una cadena e imprima todas las combinaciones de caracteres en la cadena en el orden del diccionario. Por ejemplo, ingrese la cadena ABC, imprima todas las cuerdas A, B, C, AB, AC, BC *, ABC. Pregunta para encontrar la combinación de n caracteres con longitud m * * @author pomay * */ public class Solution_stringcombination {// Encuentre la combinación de todos los caracteres en una cadena ABC> A, B, C, AB, AC, BC, ABC Public Static Void Perm (String S) {List <String> Result = New ArrayList <String> (); // Comience con uno para (int i = 1; i <= s.length (); i ++) {combinación (s, i, resultado); }} // Seleccione M caracteres M de la combinación void estática pública de String S (String S, int m, List <String> Result) {// Si m == 0, entonces el recursivo termina. Resultado de corriente de salida if (m == 0) {for (int i = 0; i <result.size (); i ++) {system.out.print (resultado.get (i)); } System.out.print (","); devolver; } if (s.length ()! = 0) {// Seleccione el elemento actual resultado.Add (S.Charat (0) + ""); // Uso de la subcadena, intercepta la combinación de cadenas de 1 al final de la combinación de N (S.Substring (1, S.Length ()), M - 1, resultado); result.remove (result.size () - 1); // no seleccione la combinación de elementos actuales (S.Substring (1, S.Length ()), M, resultado); }} public static void main (string [] args) {String str = "ABC"; permanente (str); }}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.