L'arrangement complet des chaînes, le contenu spécifique est le suivant
Entrez une chaîne et imprimez tous les arrangements des caractères dans la chaîne dans l'ordre du dictionnaire. Par exemple, saisissez la chaîne ABC, imprimez toutes les chaînes ABC, ACB, BCA, CAB et CBA qui peuvent être organisées par les caractères a, b, c. Veuillez produire les résultats de l'ordre alphabétique.
Adopter l'idée de récursivité:
Divisez les chaînes qui doivent être entièrement disposées en deux parties:
(1) le premier caractère de la chaîne;
(2) tous les personnages après le premier personnage;
Trouvez tous les caractères qui peuvent apparaître en première position; échanger le premier caractère et les personnages suivants à la fois;
Corrigez le premier personnage et trouvez la disposition complète de tous les personnages après le premier personnage. Tous les caractères suivant le premier caractère peuvent être divisés en deux parties;
Code Java:
import java.util.arraylist; import java.util.treeset; Solution de classe publique {public ArrayList <string> permutation (String str) {arrayList <string> res = new ArrayList <string> (); if (str == null || str.length () == 0) {return res; } char [] chararray = str.tocharArray (); // Sortie dans l'ordre de dictionnaire d'entrée Treeset <string> tempres = new TreeSet <string> (); PermutationCore (Chararray, Tempres, 0); res.addall (Tempres); return res; } private void permutationCore (char [] chararray, arreset <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)); // sortie récursive} else {for (int i = loc; i <chararray.length; i ++) {swap (chararray, i, loc); // swap le premier caractère avec les caractères suivants permutationCore (Chararray, TEMPRES, loc + 1); swap (chararray, i, loc); // échange les caractères précédemment échangés afin que le premier caractère puisse être échangé avec d'autres caractères}}}} private void swap (char [] chararray, int i, int j) {char temp = chararray [i]; chararray [i] = chararray [j]; chararray [j] = temp; }}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.