首页 > 后端开发 > php教程 > 如何在 PHP 中生成字符串的所有排列?

如何在 PHP 中生成字符串的所有排列?

DDD
发布: 2024-12-05 09:18:19
原创
555 人浏览过

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

PHP 中字符串的排列

在 PHP 中,生成字符串中字符的所有排列涉及一种系统地探索所有可能组合的算法.

回溯方法

一种有效的方法是回溯。 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.
登录后复制

说明

  • permute() 函数系统地探索所有可能的排列。
  • 它递归地调用其本身随着 $i 的值不断增加,字符的索引是交换。
  • swap() 函数交换索引 $i 和 $j 处的字符。
  • 到达字符串末尾时递归回溯,打印结果排列。

输出

执行代码$str = "hey" 产生预期的输出:

hey
hye
ehy
eyh
yeh
yhe
登录后复制

以上是如何在 PHP 中生成字符串的所有排列?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板