php实现abc的全排列,PHP实现字符串全排列的方法是什么

PHP实现字符串全排列的方法是什么

发布时间:2020-08-25 11:15:35

来源:亿速云

阅读:81

作者:小新

这篇文章给大家分享的是有关PHP实现字符串全排列的方法是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

输入一个字符串,按字典序打印出该字符串中字符的所有排列。

例如,输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。

思路:

1.利用递归形成递归树,达到深度优先,固定首字母的效果

2.得复位以后才能再次深度优先

3.回溯法思想

4.一张图和一个运行过程,只能慢慢体会了<?phpfunction test($str,$start,&$res){ //递归终止条件

if($start==strlen($str)){ $res[]=$str; return;

}

//

for($i=$start;$i

swap($str,$i,$start);var_dump($str.'==='.$start);var_dump($res);sleep(1);

test($str,$start+1,$res);

swap($str,$i,$start);

}

}

return $res;

}function swap(&$str,$a,$b){

if(!is_string($str)) return;

$t=$str{$a};

$str{$a}=$str{$b};

$str{$b}=$t;

}$str="abc";$res=array();//调用入口,从索引0开始

$res=test($str,0,$res);

var_dump($res);string(7) "abc===0"array(0) {

}string(7) "abc===1"array(0) {

}string(7) "abc===2"array(0) {

}string(7) "acb===1"array(1) {

[0]=> string(3) "abc"}string(7) "acb===2"array(1) {

[0]=> string(3) "abc"}string(7) "bac===0"array(2) {

[0]=> string(3) "abc"

[1]=> string(3) "acb"}string(7) "bac===1"array(2) {

[0]=> string(3) "abc"

[1]=> string(3) "acb"}string(7) "bac===2"array(2) {

[0]=> string(3) "abc"

[1]=> string(3) "acb"}string(7) "bca===1"array(3) {

[0]=> string(3) "abc"

[1]=> string(3) "acb"

[2]=> string(3) "bac"}string(7) "bca===2"array(3) {

[0]=> string(3) "abc"

[1]=> string(3) "acb"

[2]=> string(3) "bac"}string(7) "cba===0"array(4) {

[0]=> string(3) "abc"

[1]=> string(3) "acb"

[2]=> string(3) "bac"

[3]=> string(3) "bca"}string(7) "cba===1"array(4) {

[0]=> string(3) "abc"

[1]=> string(3) "acb"

[2]=> string(3) "bac"

[3]=> string(3) "bca"}string(7) "cba===2"array(4) {

[0]=> string(3) "abc"

[1]=> string(3) "acb"

[2]=> string(3) "bac"

[3]=> string(3) "bca"}string(7) "cab===1"array(5) {

[0]=> string(3) "abc"

[1]=> string(3) "acb"

[2]=> string(3) "bac"

[3]=> string(3) "bca"

[4]=> string(3) "cba"}string(7) "cab===2"array(5) {

[0]=> string(3) "abc"

[1]=> string(3) "acb"

[2]=> string(3) "bac"

[3]=> string(3) "bca"

[4]=> string(3) "cba"}array(6) {

[0]=> string(3) "abc"

[1]=> string(3) "acb"

[2]=> string(3) "bac"

[3]=> string(3) "bca"

[4]=> string(3) "cba"

[5]=> string(3) "cab"}

4aeef199f3e4b12be51b5c10202c9667.png

感谢各位的阅读!关于PHP实现字符串全排列的方法是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值