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 相关文章推荐
最省空间的计数器
Oct 09 PHP
PHP 巧用数组降低程序的时间复杂度
Jan 01 PHP
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
Jun 24 PHP
JS异常处理try..catch语句的作用和实例
May 05 PHP
跟我学Laravel之请求(Request)的生命周期
Oct 15 PHP
smarty半小时快速上手入门教程
Oct 27 PHP
windows下配置php5.5开发环境及开发扩展
Dec 25 PHP
PHP中使用break跳出多重循环代码实例
Jan 21 PHP
Zend Framework教程之模型Model用法简单实例
Mar 04 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
php mysql实现mysql_select_db选择数据库
Dec 30 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
Dec 03 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生成图形(Libchart)实例
2013/11/06 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
详解PHP队列的实现
2019/03/14 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
js word表格动态添加代码
2010/06/07 Javascript
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
jQuery筛选器children()案例详解(图文)
2013/02/17 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
2014/05/11 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
2014/08/10 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
jQuery Easyui 验证两次密码输入是否相等
2016/05/13 Javascript
AngularJS 应用身份认证的技巧总结
2016/11/07 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
vue+axios 拦截器实现统一token的案例
2020/09/11 Javascript
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
Python使用pylab库实现绘制直方图功能示例
2018/06/01 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
python读文件的步骤
2019/10/08 Python
Python如何实现感知器的逻辑电路
2020/12/25 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
回馈慈善的设计师太阳镜:DIFF eyewear
2019/10/17 全球购物
学校司机岗位职责
2013/11/14 职场文书
护理个人求职信范文
2014/01/08 职场文书
外贸采购员岗位职责
2014/03/08 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
2016新年慰问信范文
2015/03/25 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
总结Python常用的魔法方法
2021/05/25 Python
nginx内存池源码解析
2021/11/20 Servers