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 相关文章推荐
ThinkPHP自动验证失败的解决方法
Jun 09 PHP
php中file_get_contents与curl性能比较分析
Nov 08 PHP
php读取flash文件高宽帧数背景颜色的方法
Jan 06 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
Jul 03 PHP
PHP如何通过AJAX方式实现登录功能
Nov 23 PHP
CodeIgniter配置之routes.php用法实例分析
Jan 19 PHP
php redis实现对200w用户的即时推送
Mar 04 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
Aug 18 PHP
PHP实现一维数组与二维数组去重功能示例
May 24 PHP
PHP集成环境XAMPP的安装与配置
Nov 13 PHP
php7新特性的理解和比较总结
Apr 14 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
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面向对象学习笔记之一 基础概念
2012/10/06 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
php以post形式发送xml的方法
2014/11/04 PHP
php判断linux下程序问题实例
2015/07/09 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
利用js的Node遍历找到repeater的一个字段实例介绍
2013/04/25 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
input输入框鼠标焦点提示信息
2015/03/17 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
2018/08/30 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
vue开发简单上传图片功能
2020/06/30 Javascript
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
在Python下进行UDP网络编程的教程
2015/04/29 Python
Python爬取个人微信朋友信息操作示例
2018/08/03 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
python3.4爬虫demo
2019/01/22 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
python 实现批量替换文本中的某部分内容
2019/12/13 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
美国的Eastbay旗下的运动款子品牌:Final-Score
2018/01/01 全球购物
美国用餐电影院:Alamo Drafthouse Cinema
2020/01/23 全球购物
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
技术总监岗位职责
2013/12/05 职场文书
消防先进事迹材料
2014/02/10 职场文书
教师求职自荐信
2014/03/09 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
高二学生评语大全
2014/04/25 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
部队2015年终工作总结
2015/04/02 职场文书
在校学生证明格式
2015/06/24 职场文书
Python基本知识点总结
2022/04/07 Python