php怎么把字和 图片排列好,利用PHP怎么对字符串进行全排列

利用PHP怎么对字符串进行全排列

发布时间:2020-12-24 14:38:35

来源:亿速云

阅读:101

作者:Leah

这期内容当中小编将会给大家带来有关利用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"}

f8f2e5145fa968277a1b5ae33250413c.png

上述就是小编为大家分享的利用PHP怎么对字符串进行全排列了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值