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 图片上添加透明度渐变的效果
Jun 29 PHP
PHP下使用CURL方式POST数据至API接口的代码
Feb 14 PHP
LotusPhp笔记之:Logger组件的使用方法
May 06 PHP
php笔记之:数据类型与常量的使用分析
May 14 PHP
一个基于phpQuery的php通用采集类分享
Apr 09 PHP
php实现俄罗斯乘法实例
Mar 07 PHP
php代码架构的八点注意事项
Jan 25 PHP
thinkphp中的url跳转用法分析
Jul 12 PHP
php实现基于pdo的事务处理方法示例
Jul 21 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 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开发模式(简写版)
2007/03/15 PHP
php面向对象全攻略 (四)构造方法与析构方法
2009/09/30 PHP
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
UserData用法总结 lanyu出品
2010/07/01 Javascript
jQuery的实现原理的模拟代码 -1 核心部分
2010/08/01 Javascript
浏览器加载、渲染和解析过程黑箱简析
2012/11/29 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
bootstrap-treeview自定义双击事件实现方法
2016/01/09 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
2016/05/28 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
jQuery实现用户信息表格的添加和删除功能
2017/09/12 jQuery
微信小程序如何实现五星评价功能
2019/10/15 Javascript
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
浅谈Python的list中的选取范围
2018/11/12 Python
Django给admin添加Action的步骤详解
2019/05/01 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
Python如何将装饰器定义为类
2020/07/30 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
Pyinstaller打包Scrapy项目的实现步骤
2020/09/22 Python
python实现学生通讯录管理系统
2021/02/25 Python
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
擅自离岗检讨书
2014/02/11 职场文书
个人银行贷款担保书
2014/04/01 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
爱护公物标语
2014/06/24 职场文书
党支部反对四风思想汇报
2014/10/10 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
2016年质量月活动总结报告
2016/04/05 职场文书
简历自我评价范文
2019/04/24 职场文书