PHP实现求两个字符串最长公共子串的方法示例


Posted in PHP onNovember 17, 2017

本文实例讲述了PHP实现求两个字符串最长公共子串的方法。分享给大家供大家参考,具体如下:

前面一篇PHP实现求解最长公共子串问题的方法是基于java改进而来,这里再来看另一种公共子串算法。

代码如下:

<?php
$a = 'abceee12345309878';
$b = 'abceeew2345i09878fsfsfsfabceeewsfsdfsfsabceeew';
$c = array();
$lenht1 = strlen($a);
$lenth2 = strlen($b);
$startTime = microtime(true);
for ($i=0;$i<$lenht1;$i++) {
  for ($j=0;$j<$lenth2;$j++) {
    $n = ($i-1>=0 && $j-1>=0)?$c[$i-1][$j-1]:0;
    $n = ($a[$i] == $b[$j]) ? $n+1:0;
    $c[$i][$j] = $n;
  }
}
foreach ($c as $key=>$val) {
  $max = max($val);
  foreach ($val as $key1 =>$val1) {
    if ($val1 == $max && $max>0) {
      $cdStr[$max] = substr($b,$key1-$max+1,$max);
    }
  }
}
ksort($cdStr);
$endTime = microtime(true);
echo "Totle time is " . ($endTime - $startTime) . " s"."<br/>";
print_r(end($cdStr));
exit;
?>

运行结果:

Totle time is 0.0012800693512 s
abceee

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
Dedecms V3.1 生成HTML速度的优化办法
Mar 18 PHP
php中计算程序运行时间的类代码
Nov 03 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
Jun 02 PHP
PHP中soap的用法实例
Oct 24 PHP
PHP程序员常见的40个陋习,你中了几个?
Nov 20 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
Jan 07 PHP
CI框架常用方法小结
May 17 PHP
PHP屏蔽关键字实现方法
Nov 17 PHP
PHP实现转盘抽奖算法分享
Apr 15 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
May 12 PHP
PHP的简单跳转提示的实现详解
Mar 14 PHP
实现laravel 插入操作日志到数据库的方法
Oct 11 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 #PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 #PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 #PHP
关于php支持的协议与封装协议总结(推荐)
Nov 17 #PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
Nov 16 #PHP
PHP实现链式操作的三种方法详解
Nov 16 #PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 #PHP
You might like
PHP四大安全策略
2014/03/12 PHP
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
2007/08/21 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
2011/07/04 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
jQuery新的事件绑定机制on()示例应用
2014/07/18 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
JavaScript使用cookie记录临时访客信息的方法
2015/04/07 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
VUE Error: getaddrinfo ENOTFOUND localhost
2018/05/03 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
基于vue+echarts数据可视化大屏展示的实现
2020/12/25 Vue.js
[01:08:09]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第二局
2016/03/02 DOTA
Python的Urllib库的基本使用教程
2015/04/30 Python
python机器学习实战之K均值聚类
2017/12/20 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
用Python一键搭建Http服务器的方法
2018/06/01 Python
python七夕浪漫表白源码
2019/04/05 Python
Python文件路径名的操作方法
2019/10/30 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
利用python 读写csv文件
2020/09/10 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
使用CSS3实现字体颜色渐变的实现
2020/08/10 HTML / CSS
HTML5视频支持检测(检查浏览器是否支持视频播放)
2013/06/08 HTML / CSS
美国领先的精品家居照明和装饰产品在线零售商:LightsOnline.com
2018/01/23 全球购物
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
2014两会学习心得:时代的发展
2014/03/17 职场文书
师德师风建设方案
2014/05/08 职场文书
生日宴会策划方案
2014/06/03 职场文书
爱岗敬业事迹材料
2014/12/24 职场文书
幼儿园中班教师个人总结
2015/02/05 职场文书
如何在CSS中绘制曲线图形及展示动画
2021/05/24 HTML / CSS
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android