Bonjour,
J'aimerai développer une méthode me permettant de "distribuer" des voyelles dans une liste... mais je bloque !
j'ai ceci
J'aimerai obtenir en sortie une List<List<String>> qui aurait comme listes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 enum Voyelles { A = 0, E = 1, } List<String> lstTest = new List<String>(); lstTest.Add("B"); lstTest.Add("C"); lstTest.Add("D");
De tel sorte que l'enum (les voyelles) forme toutes les combinaison possible, sauf qu'une voyelle doit être à coté de consonnes (ou une seule si en bout de chaîne), autrement dit il ne doit pas y avoir 2 voyelles à coté.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 List<List<String>> sortie = new List<List<string>>(); List<String> lst1 = new List<String>(); lst1.Add("B"); lst1.Add("C"); lst1.Add("D"); lst1.Add("A"); List<String> lst2 = new List<String>(); lst1.Add("B"); lst1.Add("C"); lst1.Add("A"); lst1.Add("D"); lst1.Add("A"); //... sortie.Add(lst1); sortie.Add(lst2); //...
Voici un exemple de résultat :
BCDA
BCADA
BACADA
ABACADA
BCDE
BCADE
BCADE
BACADE
ABACADE
...
BCAD
BACAD
ABACAD
BCED
BACED
ABACED
...
BACD
ABACD
EBACD
BECD
ABECD
EBECD
...
ABCD
EBCD
(il n'y a pas toutes les combinaisons dans cet exemple)
Chaque ligne représente une Liste<String> où chaque lettre est dans un String. (j'ai volontairement simplifier mon problème)
Si vous avez des pistes à me donner ? J'ai commencé une méthode récursive mais je n'arrive pas au bon résultat.
Merci
édit: attention, ma liste de départ peut contenir de 1 à N élément (beaucoup)
Partager