php100种算法(php实现的生成排列算法示例)
php100种算法
php实现的生成排列算法示例本文实例讲述了php实现的生成排列算法。分享给大家供大家参考,具体如下:
|
<?php function perm( $s , $n , $index ) { if ( $n == 0) { return '' ; } else { $nIndex = count ( $index ); //可用的字符串下标 $res = array (); foreach ( $index as $i => $v ) { $tmp = $index ; unset( $tmp [ $i ]); //去掉当前的前缀 /* 调试信息,便于理解 echo "len $n , cur $i , index:\n"; var_dump($tmp); */ $ret = perm( $s , $n -1, $tmp ); //递归得到稍短的排列 if ( $ret != '' ) { foreach ( $ret as $r ) { $res [] = $s [ $v ] . $r ; //将稍短的排列逐个拼上当前的前缀 } } else { $res [] = $s [ $v ]; } } return $res ; } } function getPerm( $s ) { $n = strlen ( $s ); $index = range(0, $n -1); //得到不同长度的排列 for ( $i =1; $i <= $n ; $i ++) { var_dump(perm( $s , $i , $index )); } } getPerm( 'abcd' ); ?> |
运行结果:
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "d"
}
array(12) {
[0]=>
string(2) "ab"
[1]=>
string(2) "ac"
[2]=>
string(2) "ad"
[3]=>
string(2) "ba"
[4]=>
string(2) "bc"
[5]=>
string(2) "bd"
[6]=>
string(2) "ca"
[7]=>
string(2) "cb"
[8]=>
string(2) "cd"
[9]=>
string(2) "da"
[10]=>
string(2) "db"
[11]=>
string(2) "dc"
}
array(24) {
[0]=>
string(3) "abc"
[1]=>
string(3) "abd"
[2]=>
string(3) "acb"
[3]=>
string(3) "acd"
[4]=>
string(3) "adb"
[5]=>
string(3) "adc"
[6]=>
string(3) "bac"
[7]=>
string(3) "bad"
[8]=>
string(3) "bca"
[9]=>
string(3) "bcd"
[10]=>
string(3) "bda"
[11]=>
string(3) "bdc"
[12]=>
string(3) "cab"
[13]=>
string(3) "cad"
[14]=>
string(3) "cba"
[15]=>
string(3) "cbd"
[16]=>
string(3) "cda"
[17]=>
string(3) "cdb"
[18]=>
string(3) "dab"
[19]=>
string(3) "dac"
[20]=>
string(3) "dba"
[21]=>
string(3) "dbc"
[22]=>
string(3) "dca"
[23]=>
string(3) "dcb"
}
array(24) {
[0]=>
string(4) "abcd"
[1]=>
string(4) "abdc"
[2]=>
string(4) "acbd"
[3]=>
string(4) "acdb"
[4]=>
string(4) "adbc"
[5]=>
string(4) "adcb"
[6]=>
string(4) "bacd"
[7]=>
string(4) "badc"
[8]=>
string(4) "bcad"
[9]=>
string(4) "bcda"
[10]=>
string(4) "bdac"
[11]=>
string(4) "bdca"
[12]=>
string(4) "cabd"
[13]=>
string(4) "cadb"
[14]=>
string(4) "cbad"
[15]=>
string(4) "cbda"
[16]=>
string(4) "cdab"
[17]=>
string(4) "cdba"
[18]=>
string(4) "dabc"
[19]=>
string(4) "dacb"
[20]=>
string(4) "dbac"
[21]=>
string(4) "dbca"
[22]=>
string(4) "dcab"
[23]=>
string(4) "dcba"
}
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/zhaozhi406/article/details/8531944
- php获取post请求来源域名(在PHP中实现使用Guzzle执行POST和GET请求)
- phpstudy使用教程学习(phpStudy 2016 使用教程详解支持PHP7)
- php 记录的已读状态(PHP使用观察者模式处理异常信息的方法详解)
- python核心编程内容(顶级大神Linux,Python,Go,PHP之父谁是夜猫子?用Python揭秘!)
- php实现导航地图(php根据地址获取百度地图经纬度的实例方法)
- docker部署php本地开发环境(CentOS7环境下使用Docker搭建PHP运行环境的过程详解)
- thinkphp5 api开发(thinkphp5框架前后端分离项目实现分页功能的方法分析)
- php7优化技巧(php7性能提升的原因详解)
- php redis应用场景(PHP商品秒杀问题解决方案实例详解mysql与redis)
- dedecms注册怎么给权限(织梦DedeCms系统未审核文档禁止动态浏览修改方法view.php)
- phpredis常用方法(PHP针对redis常用操作实例详解)
- 常见的php五大运行模式详解(php设计模式之职责链模式定义与用法经典示例)
- centos安装php5.6(Centos7 Yum安装PHP7.2流程教程详解)
- phpstudy数据库搭建教程交流(phpStudy V8如何修改数据库root密码)
- php mq使用方法(PHP使用ActiveMQ实现消息队列的方法详解)
- phpredis怎么设置队列(php使用lua+redis实现限流,计数器模式,令牌桶模式)
- 五代十国南唐历代国君(五代十国南唐历代国君)
- 飞机引进工程师杨隆 匠人匠心,只争朝夕(飞机引进工程师杨隆)
- 三人行,她们是育人路上的 铁三角 团队(她们是育人路上的)
- 阴阳师 孟婆山兔CP不倒 新皮肤草稿 孟婆兔 让痒痒鼠点赞(阴阳师孟婆山兔CP不倒)
- 阴阳师孟婆御魂推荐 孟婆御魂搭配毕业套(阴阳师孟婆御魂推荐)
- 袁冰妍终于接到新剧,饰演反追男主,看到合作演员 眼光果然毒辣(袁冰妍终于接到新剧)
热门推荐
- jenkins 构建docker镜像(docker搭建jenkins+maven代码构建部署平台)
- Vps主机和云服务器的区别(Vps主机和云服务器的区别)
- vue 动态绑定指令(vue动态绑定图标的完整步骤)
- idea 远程部署docker(IDEA使用Docker插件菜鸟教程)
- python怎么爬取excel数据(python爬取内容存入Excel实例)
- 在谷歌浏览器中模拟网站在网络慢的访问速度
- h5微信手机端debug模式(iOS微信H5页面橡皮回弹效果的踩坑记录)
- vue 访问后台接口(vue轮询请求解决方案的完整实例)
- ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解(ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解)
- dede织梦如何调用栏目(织梦dedecms rss输出改成全文输出)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9