Anagramme d'un mot

Contenu du snippet

Ce programme d'anagramme utilise des permutations circulaires : on effectue N permutations circulaires d'un mot de N lettres, puis, pour chaque permutation, on effectue les permutations circulaires des (N-1) premières (on aurait aussi pu prendre les N-1 dernières) lettres et ainsi de suite...

Source / Exemple :


// Recherche de tous les anagrammes d'un mot <Str> (Point d'entrée)
public void Anagramme(string Str)
{
    Anagramme(ref Str,Str.Length);
}

// Methode récursive de calcul des permutations circulaires d'un mot
public void Anagramme(ref string Str, int Lg)
{
  if (Lg==1)
      Console.WriteLine(Str);
  else
  {
      string strTmp=Str;
      // Pour chaque permutation circulaire des Lg premières lettres : appel récursif
      //   avec les Lg-1 premières lettres
      for (int i=0;i<Lg;i++)
      {
          strTmp=strTmp.Substring(1,Lg-1) + strTmp[0] + strTmp.Substring(Lg);
          Anagramme(ref strTmp ,Lg-1);
      }
  }
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.