Cet article présente le problème de la mise en œuvre de la mise en œuvre de la chaîne et de la combinaison Java pour votre référence. Le contenu spécifique est le suivant
import java.util.arraylist; Importer java.util.collections; / ** * Entrez une chaîne et imprimez tous les arrangements de caractères dans la chaîne dans l'ordre du dictionnaire. Par exemple, saisissez la chaîne ABC, puis imprimez toutes les chaînes ABC, ACB, BAC, * BCA, CAB et CBA qui peuvent être organisées par les caractères a, b, c. * * @author pomay * * / public class solution_stringArrange {public arrayList <string> permutation (string str) {if (str == null) return null; ArrayList <string> list = new ArrayList <string> (); char [] pstr = str.tocharArray (); Permutation (pstr, 0, liste); Collection.Sort (liste); Liste de retour; } static void permutation (char [] str, int i, arrayList <string> list) {// if vide if (str == null) return; // Si je pointe vers le dernier caractère if (i == str.length - 1) {if (list.contains (string.valueof (str))) return; list.add (string.valueof (str)); } else {// i pointe vers le premier caractère de la chaîne qui fait actuellement l'opération de permutation pour (int j = i; j <str.length; j ++) {// échanger le premier caractère de la chaîne faisant l'opération de permutation avec tous les caractères suivants char temp = str [j]; str [j] = str [i]; str [i] = temp; // Après l'échange, effectuez un arrangement récursif des cordes après i. Permutation (str, i + 1, liste); // Une fois chaque tour terminé, revenez pour effectuer le cycle suivant de la température de disposition = str [j]; str [j] = str [i]; str [i] = temp; }}} public static void main (string [] args) {string str = "aab"; Solution_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) + ""); }}} combinaison:
Sélectionnez le premier caractère dans la chaîne de longueur n, puis sélectionnez les caractères M-1 dans les chaînes restantes de la longueur n-1, ou ne sélectionnez pas le premier caractère dans la chaîne de longueur n, puis sélectionnez M caractères dans les chaînes restantes de la longueur n-1
import java.util.arraylist; Importer java.util.list; / ** * Entrez une chaîne et imprimez toutes les combinaisons de caractères dans la chaîne dans l'ordre du dictionnaire. Par exemple, saisissez la chaîne ABC, imprimez toutes les chaînes A, B, C, AB, AC, BC *, ABC. Question pour trouver la combinaison de n caractères avec la longueur m * * @author pomay * * / public class solution_stringcombination {// trouvez la combinaison de tous les caractères dans une chaîne ABC> a, b, c, ab, ac, bc, abc public static perm (string s) {list <string> result = new ArrayList <string> (); // commence par un pour (int i = 1; i <= s.Length (); i ++) {combinaison (s, i, résultat); }} // Sélectionnez M Caractères From String S Public Static Void Combination (String S, int M, List <string> Result) {// Si m == 0, alors le récursif se termine. Résultat de courant de sortie if (m == 0) {for (int i = 0; i <result.size (); i ++) {System.out.print (result.get (i)); } System.out.print (","); retour; } if (s.Length ()! = 0) {// Sélectionnez l'élément actuel Result.add (s.Charat (0) + ""); // Utilisation de la sous-chaîne, interceptez la combinaison de chaînes de 1 à la fin de la combinaison N (S.SubString (1, S.Length ()), M - 1, résultat); result.Remove (result.size () - 1); // Ne sélectionnez pas la combinaison d'éléments actuelle (S.SubString (1, S.Length ()), m, résultat); }} public static void main (String [] args) {String str = "ABC"; perm (str); }}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.