IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Generer les permutations d'une chaine de caracteres


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 74
    Points : 54
    Points
    54
    Par défaut Generer les permutations d'une chaine de caracteres
    Salut tous le monde,

    Je veux generer toutes le permutations d'une chaine de caracteres en sachant que cette chainne contiens que 2 caracteres qui se repetent .
    Par exemple :

    ABAB ->

    - AABB
    - BBAA
    - ABAB
    - BABA

    - BAAB
    - ABBA


    Pouvez vous m'aider avec un algorithme ?

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Moi je dirais plutôt :

    AABB
    ABAB
    ABBA
    BAAB
    BABA
    BBAA

    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 74
    Points : 54
    Points
    54
    Par défaut
    Oui, vous avez raison
    Merci pour la correction .

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    et donc, on devine que les permutations ne dépendent pas de la chaine initiale, mais juste du nombre de A et de B qu'elle contient. Ici 2A et 2B.

    Il ne reste qu'a explorer l'arbre des possibilités, en prenant soit un A, soit un B

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    void main(String[] args) {
    	int A=2, B=2;
    	explore(A,B,"");
    }
     
    void explore(int Acount, int BCount, String s) {
    	if (Acount==0 && BCount==0) {
    		System.out.println(s);
    		return;
    	}
    	if (Acount>0) explore(Acount-1, BCount, s+"A" );
    	if (BCount>0) explore(Acount, BCount-1, s+"B" );
    }
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/03/2012, 22h53
  2. Enlever les guillemets d'une chaine de caractere
    Par virtuadrack dans le forum Shell et commandes POSIX
    Réponses: 9
    Dernier message: 24/08/2011, 23h03
  3. enlever les balises d'une chaine de caractere
    Par bracket dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 04/04/2009, 17h51
  4. Eliminer les espaces dans une chaine de caractere
    Par sialafrere dans le forum WinDev
    Réponses: 2
    Dernier message: 02/05/2008, 21h42
  5. Réponses: 9
    Dernier message: 06/11/2007, 12h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo