输入一个字符串,打印出该字符串的所有排列

/**

  • 输入一个字符串,打印出该字符串的所有排列。
  • 例如输入字符串abc,则输出由字符a,b,c所能排列出来的所有字符串
  • abc、acb、bac、bca、cab和cba

*/

$str = 'abcd';
test3(str_split($str), 0, strlen($str)-1);


function test3(&$arr,$start,$len){

    if ($start== $len){
        echo join('', $arr),PHP_EOL;        //④
    }else {

        for ($i = $start; $i <= $len; $i++) {
            swap($arr[$start], $arr[$i]);   //①
            test3($arr, $start + 1, $len);  //②
            swap($arr[$start], $arr[$i]);   //③
        }
    }
}

function swap(&$a, &$b) {
    $tmp = $b;
    $b = $a;
    $a = $tmp;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 3,335评论 0 7
  • 字符串的全排列 题目描述: 输入一个字符串,打印出该字符串中字符的所有排列。 例如输入字符串abc,则输出由字符a...
    MinoyJet阅读 11,416评论 4 11
  • 问题:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a,b,c所能排列出来的所...
    方法一君阅读 609评论 0 0
  • 问题 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排...
    黎贝卡beka阅读 498评论 0 1
  • 文#贾小子 傍晚,跟朋友去图书馆的路上,聊了一些关于大学学习和生活上的一些事情。 他说,如果大学可以重...
    贾小子啊阅读 429评论 6 14

友情链接更多精彩内容