O arranjo completo de cordas, o conteúdo específico é o seguinte
Digite uma string e imprima todos os arranjos dos caracteres na string na ordem do dicionário. Por exemplo, insira a string ABC, imprima todas as cordas ABC, ACB, BCA, CAB e CBA que podem ser organizadas pelos caracteres A, B, C. Por favor, produz os resultados da ordem alfabética.
Adotando a idéia de recursão:
Divida as cordas que precisam ser totalmente organizadas em duas partes:
(1) o primeiro caractere da string;
(2) todos os caracteres após o primeiro caractere;
Encontre todos os personagens que podem aparecer na primeira posição; trocar o primeiro personagem e os seguintes caracteres de uma só vez;
Corrija o primeiro personagem e encontre o arranjo completo de todos os personagens após o primeiro caractere. Todos os personagens que seguem o primeiro caractere podem ser divididos em duas partes;
Código Java:
importar java.util.arraylist; importar java.util.treeset; classe pública Solução {public ArrayList <String> Permutação (String str) {ArrayList <String> res = new ArrayList <String> (); if (str == null || str.Length () == 0) {return res; } char [] CharArray = str.toCharArray (); // Saída em ordem de entrada do dicionário TreeSet <String> TEMPRES = new TreeSet <String> (); PermutaçãoCore (CharArray, Tempres, 0); res.addall (TEMPRES); retornar 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)); // saída recursiva} else {for (int i = loc; i <chararray.length; i ++) {swap (chararray, i, loc); // shap o primeiro caractere com os seguintes caracteres permeados Swap (CharArray, i, loc); // Troque os caracteres trocados anteriormente para que o primeiro caractere possa ser trocado com outros caracteres}}}} troca de void privado (char [] chararray, int i, int j) {char temp = chararray [i]; CharArray [i] = CharArray [J]; chararray [j] = temp; }}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.