PHP递归组合排列

//递归排序法
function leyangjunRank($base, $temp=null)
 {
     static $ret = array();
     $len = strlen($base);
     if($len <= 1)
     {
         //echo $temp.$base.'<br/>';
         $ret[] = $temp.$base;
     }
     else
     {
         for($i=0; $i< $len; ++$i)
         {
             $had_flag = false;
             for($j=0; $j<$i; ++$j)
             {
                 if($base[$i] == $base[$j])
                 {
                     $had_flag = true;
                     break;
                 }
             }
             if($had_flag)
             {
                 continue;
             }
             fsRank(substr($base, 0, $i).substr($base, $i+1, $len-$i-1), $temp.$base[$i]);
         }
     }
     return $ret;
 }


 print_r(leyangjunRank('AABB'));//返回6种组合

返回结果:

Array

(
    [0] => AABB
    [1] => ABAB
    [2] => ABBA
    [3] => BAAB
    [4] => BABA
    [5] => BBAA
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值