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 中英文混合排版中处理字符串常用的函数
Apr 12 PHP
php在字符串中查找另一个字符串
Nov 19 PHP
PHP $_FILES函数详解
Mar 09 PHP
php中判断文件空目录是否有读写权限的函数代码
Aug 07 PHP
PHP 解决session死锁的方法
Jun 20 PHP
PHP获取表单所有复选框的值的方法
Aug 28 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
Oct 20 PHP
PHP获取当前文件的父目录方法汇总
Jul 21 PHP
php常用数组函数实例小结
Dec 29 PHP
PHP实现添加购物车功能
Mar 06 PHP
Ajax请求PHP后台接口返回信息的实例代码
Aug 21 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
Oct 16 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
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
php银联网页支付实现方法
2015/03/04 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
php链表用法实例分析
2015/07/09 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
js open() 与showModalDialog()方法使用介绍
2013/09/10 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
2014/04/12 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
JS原型继承四步曲及原型继承图一览
2017/11/28 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
Python中的面向对象编程详解(上)
2015/04/13 Python
python3.6.3转化为win-exe文件发布的方法
2018/10/31 Python
详解django自定义中间件处理
2018/11/21 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
Python3.7安装pyaudio教程解析
2020/07/24 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
大学教师师德师风演讲稿
2014/08/22 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
golang生成vcf通讯录格式文件详情
2022/03/25 Golang
hive数据仓库新增字段方法
2022/06/25 数据库