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 相关文章推荐
PR值查询 | PageRank 查询
Dec 20 PHP
什么是MVC,好东西啊
May 03 PHP
PHP批量生成缩略图的代码
Jul 19 PHP
PHP一些常用的正则表达式字符的一些转换
Jul 29 PHP
关于PHP中字符串与多进制转换函数的实例代码
Nov 03 PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 PHP
PHP实现的简单在线计算器功能示例
Aug 02 PHP
使用PHP+MySql实现微信投票功能实例代码
Sep 29 PHP
对php 判断http还是https,以及获得当前url的方法详解
Jan 15 PHP
PHP中的自动加载操作实现方法详解
Aug 06 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
Oct 11 PHP
PHP的Trait机制原理与用法分析
Oct 18 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 Directory 函数的详解
2013/03/07 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
JavaScript获取多个数组的交集简单实例
2013/11/11 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
jquery如何判断表格同一列不同行input数据是否重复
2014/05/14 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
js创建数组的简单方法
2016/07/27 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
简单使用webpack打包文件的实现
2019/10/29 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
ES6 十大特性简介
2020/12/09 Javascript
Python学习思维导图(必看篇)
2017/06/26 Python
详解用python实现简单的遗传算法
2018/01/02 Python
Python3自动签到 定时任务 判断节假日的实例
2018/11/13 Python
python的继承知识点总结
2018/12/10 Python
解决Python中pandas读取*.csv文件出现编码问题
2019/07/12 Python
python函数的作用域及关键字详解
2019/08/20 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
Django 自动生成api接口文档教程
2019/11/19 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
CSS3混合模式mix-blend-mode/background-blend-mode简介
2018/03/15 HTML / CSS
CSS3动画:5种预载动画效果实例
2017/04/05 HTML / CSS
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
Html5实现单张、多张图片上传功能
2019/04/28 HTML / CSS
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
办公室主任职责范文
2013/11/08 职场文书
个人主要事迹材料
2014/08/26 职场文书
CSS filter 有什么神奇用途
2021/05/25 HTML / CSS
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers