Permutation avec une fonction récursive
Bonsoir,
Je souhaite construire, les ensembles suivant avec un algo récursif:
avec pour entrer: String str = "12 13 14 23 24 34";
Toutes conbinaisons à 3 elts sans répétition par exple (12 13 14); (13 14 23)...
et de 4 elts toutes les combinaison sans repetition d'ensembe: par exple(12 13 14 23), (14 23 24 34)
voici un code, la boucle while tourne de maniere infini, alors qu'il n 'a plus de next.
Merci pour votre aide
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public static LinkedList<String> permutationRec(String s, int indice, int n){
LinkedList<String> permutation = new LinkedList<String>();
String str = s.substring(indice, s.length());
if(str.length() == n){
permutation.add(str);
}
else{
LinkedList<String> sub = permutationRec(s, indice+n, n);
Iterator<String> it = sub.iterator();
int i = 0;
???? while(it.hasNext()) {
String prefixe = sub.get(i);
String suffixe = "";
String temp = prefixe + str.substring(0,n) + suffixe;
permutation.add(temp);
i ++;
}
}
return permutation;
} |
Code:
1 2 3 4 5 6 7 8
| public static void main(String[] args) {
String str = "121214232434";
LinkedList<String> res = permutationRec(str, 0,2);
Iterator<String> it = res.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
} |