本文主要是介绍PHP字符串全排列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
方法一:
$str = 'abc';
$a =str_split($str);
perm($a, 0, count($a)-1);function perm(&$ar, $k, $m) {if($k == $m){ echo join('',$ar), PHP_EOL;}else {for($i=$k; $i<=$m; $i++) {swap($ar[$k], $ar[$i]);perm($ar, $k+1, $m);swap($ar[$k], $ar[$i]);}}
}
function swap(&$a, &$b) {$c = $a;$a = $b;$b = $c;
}
方法二:
function output($temp,$level) {for($i=0;$i<$level;$i++) {echo $temp[$i];}echo PHP_EOL;
}
//产生全排列 递归参数传递一定要注意
function quanpai($arr,$flag,$level,$num,$temp) {if($level>=$num) {output($temp,$num);return;}for($i=0;$i<$num;$i++) {if($flag[$i]==0) {$temp[$level]=$arr[$i];$flag[$i]=1;quanpai($arr,$flag,$level+1,$num,$temp);$flag[$i]=0;}}
}
$str = 'abc';
$arr=str_split($str);
$len=count($arr);
$i=0;
$flag=array();
$temp=array();
while($i<$len){$flag[$i]=0;$i++;
}
quanpai($arr,$flag,0,$len,$temp);
这篇关于PHP字符串全排列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!