PHP字符串全排列
2016-02-21 00:17
447 查看
方法一:
方法二:
$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常见漏洞攻击分析
- PHP编写RESTful接口的方法
- ContentProvider:自定义的应用
- 跨应用访问自己定义的ContentProvider,用SearchView搜索关键字(16)
- PHP之构造析构
- PHP中FOREACH()用法
- PHP中"->"和"=>"的区别
- PHP学习笔记 - 进阶篇(11)
- PHP学习笔记 - 进阶篇(10)
- PHP学习笔记 - 进阶篇(9)
- PHP学习笔记 - 进阶篇(8)
- PHP学习笔记 - 进阶篇(7)
- PHP学习笔记 - 进阶篇(6)
- PHP学习笔记 - 进阶篇(5)
- PHP学习笔记 - 进阶篇(4)
- PHP学习笔记 - 进阶篇(3)
- PHP学习笔记 - 进阶篇(2)
- PHP学习笔记 - 进阶篇(1)
- PHP学习笔记 - 入门篇(5)
- PHP学习笔记 - 入门篇(4)