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

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

Patricia Arquette
Patricia Arquetteoriginal
2024-12-01 04:30:13441parcourir

How to Generate All Permutations of a String in PHP?

Générer des permutations d'une chaîne en PHP

Question :

Comment peut-on générer tous permutations possibles de tous les caractères d'une chaîne donnée en utilisant PHP ?

Réponse :

Pour générer toutes les permutations d'une chaîne, vous pouvez utiliser une approche basée sur le backtracking qui explore systématiquement toutes les combinaisons possibles.

Mise en œuvre :

// function to generate and print all N! permutations of $str. (N = strlen($str)).
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 to swap the char at pos $i and $j of $str.
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.

Exemple Utilisation :

Exécuter l'extrait de code :

#php a.php

générera et imprimera toutes les permutations possibles de la chaîne "hey":

hey
hye
ehy
eyh
yeh
yhe

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!

Déclaration:
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