Anagramme Récursif

Paradox0 Messages postés 1 Date d'inscription mercredi 19 novembre 2008 Statut Membre Dernière intervention 19 novembre 2008 - 19 nov. 2008 à 23:34
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 - 20 nov. 2008 à 16:21
Bonjour j'ai un petit probleme pour faire le programme suivant j'ai trouvé des choses sur le net mais elles ne correspondent pas a mon résultat . Si quelqu'un pouvait m'aider ...

1. Ecrire une m´ethode recursive public static void anagramme (String s, int indice)
qui prend en argument :
– s, une chaine dont on veut afficher tous les anagrammes ;
– indice, un entier qui indique le nombre de lettres deja permutees.

Merci d'avance

4 réponses

dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
20 nov. 2008 à 09:08
Salut,

Il serait intéressant que tu nous dises sur quel point tu as des problèmes???
Qu'est ce qui te pose problème dans l'écriture d'un tel algorithme? Où est ce que tu planches?

On ne va pas te pondre l'algorithme tout frais tout chaud que tu n'aurais plus qu'à copier coller et puis basta...
L'intêret de ce forum est de poser les questions qui te posent problème et non pas te donner des cours.

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
20 nov. 2008 à 09:57
Et nous sommes encore moins là pour faire les devoirs scolaires à votre place...
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
20 nov. 2008 à 10:31
Il y a des fois ça me manque de pas avoir de devoir quand je rentre chez moi le soir tu sais...
Tu rentres t'as rien à faire... c'était bien la bonne époque où tu rentrais et t'avais un gros projet à travailler dur jusqu'à pas d'heure...

Mouais, ça fait super geek là...

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
20 nov. 2008 à 16:21
import java.util.Iterator;
import java.util.LinkedList;

public class Anagramme {

    public static LinkedList<String> anagrammeRec(String s, int indice){
        LinkedList<String> anagrammes = new LinkedList<String>();
        String str = s.substring(indice, s.length());
        if (str.length() == 1) {
            anagrammes.add(str);
        }
        else {
                LinkedList<String> sub = anagrammeRec(s, indice+1);
                Iterator<String> it = sub.iterator();
                while(it.hasNext()) {
                    String t = it.next();
                    for (int i=0; i < t.length(); i++) {
                        String prefixe = (i > 0)?t.substring(0, i): "";
                        String suffixe = (i < t.length())?t.substring(i, t.length()): "";
                        String temp = prefixe + str.charAt(0) + suffixe;
                        anagrammes.add(temp);
                    }
                    anagrammes.add(t + str.charAt(0));
                }
        }
        return anagrammes;
    }
    
    public static void main(String[] args) {
        String str = "0123";
        LinkedList<String> res = anagrammeRec(str, 0);
        Iterator<String> it = res.iterator();
        while(it.hasNext()) {
            System.out.println(it.next());
        }
    }
}
0
Rejoignez-nous