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 相关文章推荐
开源SNS系统-ThinkSNS
May 18 PHP
IIS安装Apache伪静态插件的具体操作图文
Jul 01 PHP
destoon实现VIP排名一直在前面排序的方法
Aug 21 PHP
php学习笔记之基础知识
Nov 08 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 PHP
使用PHP实现阻止用户上传成人照片或者裸照
Dec 25 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
Aug 18 PHP
PHP的消息通信机制测试实例
Nov 10 PHP
PHP迭代与递归实现无限级分类
Aug 28 PHP
PHP实现批量修改文件名的方法示例
Sep 18 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
Mar 02 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 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下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
PHP数组交集的优化代码分析
2011/03/06 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
thinkphp普通查询与表达式查询实例分析
2014/11/24 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
如何判断php mysqli扩展类是否开启
2016/12/24 PHP
yii2中关于加密解密的那些事儿
2018/06/12 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
JavaScript 面向对象的之私有成员和公开成员
2010/05/04 Javascript
浏览器的JavaScript引擎的识别方法
2013/10/20 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
js报$ is not a function 的问题的解决方法
2014/01/20 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
Nodejs 获取时间加手机标识的32位标识实现代码
2017/03/07 NodeJs
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
2017/09/20 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
JS实现checkbox互斥(单选)功能示例
2019/05/04 Javascript
微信小程序实现上传多张图片、删除图片
2020/07/29 Javascript
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
js实现滚动条自动滚动
2020/12/13 Javascript
bpython 功能强大的Python shell
2016/02/16 Python
Python排序搜索基本算法之堆排序实例详解
2017/12/08 Python
使用python爬虫实现网络股票信息爬取的demo
2018/01/05 Python
彻底搞懂Python字符编码
2018/01/23 Python
python批量查询、汉字去重处理CSV文件
2018/05/31 Python
Flask之请求钩子的实现
2018/12/23 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
Python with语句和过程抽取思想
2019/12/23 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
PHP如何对用户密码进行加密
2014/07/31 面试题
商务英语专业大学生职业生涯规划书
2014/09/14 职场文书
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js