• 利用递归打印一个字符串的全部排列(从左到右)


    1.PHP实现

    <?php
    //打印一个字符串的全部排列
    //排列的个数为 n! ,n为字符串的长度
    //
    
    function printArrange($str=[],$i=0,&$target=[])
    {
        $len = count($str);
        //抵达字符串的最后一个字符时停止
        if(($i+1) == $len)
        {
            array_push($target,$str);
            return;
        }
        for($j=$i;$j<$len;$j++)
        {
            swap($str,$i,$j);
            printArrange($str,$i+1,$target);//$str[0,$i]是已经排列的字符串
            //swap($str,$i,$j);
        }
    }
    
    function swap(&$str=[],$i,$j)
    {
        $temp = $str[$i];
        $str[$i] = $str[$j];
        $str[$j] = $temp;
    }
    
    //$str=['H','E','L','L','O',',','W','O','R','L','D'];
    //$str=['W','O','R','L','D'];
    $str=['W','O','R'];
    $target=[];
    printArrange($str,$i=0,$target);
    print_r($target);
  • 相关阅读:
    ajax小白理解
    Once more
    win滚动条样式修改
    NOIP2018游记
    Stirling数笔记
    【Start From Here】HNOI2018 滚粗记
    6面相对象
    5方法定义及调用
    Java4数组
    Java3流程控制语句
  • 原文地址:https://www.cnblogs.com/indifferent/p/14396475.html
Copyright © 2020-2023  润新知