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 相关文章推荐
PHP clearstatcache()函数详解
Mar 02 PHP
php学习之流程控制实现代码
Jun 09 PHP
php中hashtable实现示例分享
Feb 13 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
Dec 19 PHP
理解PHP中的Session及对Session有效期的控制
Jan 08 PHP
PHP Try-catch 语句使用技巧
Feb 28 PHP
php使用自定义函数实现汉字分割替换功能示例
Jan 30 PHP
Mac下php 5升级到php 7的步骤详解
Apr 26 PHP
php实现数字补零的方法总结
Sep 12 PHP
PHP实现的敏感词过滤方法示例
Mar 06 PHP
Yii框架Session与Cookie使用方法示例
Oct 14 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
Sep 13 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语法(5)
2006/10/09 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
2016/05/18 Javascript
JavaScript中对JSON对象的基本操作示例
2016/05/21 Javascript
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
2018/02/01 Javascript
Vue中在新窗口打开页面及Vue-router的使用
2018/06/13 Javascript
总结javascript三元运算符知识点
2018/09/28 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
python字符串下标与切片及使用方法
2020/02/13 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
西班牙电子产品购物网站:Electronicamente
2018/07/26 全球购物
微观物理专业自荐信
2014/01/26 职场文书
手机促销活动方案
2014/02/05 职场文书
优秀实习生主要事迹
2014/05/29 职场文书
平安工地汇报材料
2014/08/19 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
家庭贫困证明范本(经典版)
2014/09/22 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
高中运动会前导词
2015/07/20 职场文书
初中团支书竞选稿
2015/11/21 职场文书
2016年教代会开幕词
2016/03/04 职场文书
PostgreSQL常用字符串分割函数整理汇总
2022/07/07 PostgreSQL