Maison > développement back-end > tutoriel php > Comment puis-je générer toutes les permutations d'une chaîne en PHP ?

Comment puis-je générer toutes les permutations d'une chaîne en PHP ?

DDD
Libérer: 2024-12-05 09:18:19
original
541 Les gens l'ont consulté

How Can I Generate All Permutations of a String in PHP?

Permutations d'une chaîne en PHP

En PHP, générer toutes les permutations de caractères au sein d'une chaîne implique un algorithme qui explore systématiquement toutes les combinaisons possibles .

Approche de retour en arrière

Une approche efficace est retour en arrière. Voici l'implémentation PHP :

function permute($str,$i,$n) {
   if ($i == $n)
       print "$str\n";
   else {
        for ($j = $i; $j < $n; $j++) {
          swap($str,$i,$j);
          permute($str, $i+1, $n);
          swap($str,$i,$j); // backtrack.
       }
   }
}
function swap(&amp;$str,$i,$j) {
    $temp = $str[$i];
    $str[$i] = $str[$j];
    $str[$j] = $temp;
}   

$str = "hey";
permute($str,0,strlen($str)); // call the function.
Copier après la connexion

Explication

  • La fonction permute() explore systématiquement toutes les permutations possibles.
  • Elle appelle récursivement lui-même avec des valeurs croissantes de $i, l'index du caractère échangé.
  • La fonction swap() échange les caractères aux indices $i et $j.
  • La récursivité revient en arrière lorsque la fin de la chaîne est atteinte, imprimant la permutation résultante.

Sortie

L'exécution du code avec $str = "hey" produit le résultat attendu :

hey
hye
ehy
eyh
yeh
yhe
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal