//递归排序法
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
)
PHP递归组合排列
原创
©著作权归作者所有:来自51CTO博客作者LecKey的原创作品,请联系作者获取转载授权,否则将追究法律责任
下一篇:MySQL 普通索引191原因
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【LeetCode】39. 组合总和
【LeetCode】39. 组合总和
leetcode 数据结构与算法 C++ -
[递归 dfs]枚举全排列和所有组合
1.全排列例题:洛谷P1706 全排列问题题目描述输
dfs 算法 递归法 i++ #include -
php 排列组合函数(无重复组合,可重复组合【全排列组合】)
执行效果如下:
数组 i++ 浮点 浮点数 php