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 需要掌握的东西 不做浮躁的人
Dec 28 PHP
JpGraph php柱状图使用介绍
Aug 23 PHP
深入php之规范编程命名小结
May 15 PHP
解析posix与perl标准的正则表达式区别
Jun 17 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
Aug 16 PHP
使用openssl实现rsa非对称加密算法示例
Jan 24 PHP
ThinkPHP视图查询详解
Jun 30 PHP
php实现斐波那契数列的简单写法
Jul 19 PHP
PHP实现格式化文件数据大小显示的方法
Jan 03 PHP
PHP购物车类Cart.class.php定义与用法示例
Jul 20 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
php实现的PDO异常处理操作分析
Dec 27 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中的字符串函数
2006/11/24 PHP
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
Laravel核心解读之异常处理的实践过程
2019/02/24 PHP
PHP判断函数是否被定义的方法
2019/06/21 PHP
js下获取div中的数据的原理分析
2010/04/07 Javascript
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
node.js中Socket.IO的进阶使用技巧
2014/11/04 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
javascript使用btoa和atob来进行Base64转码和解码
2017/03/20 Javascript
如何使用Javascript中的this关键字
2020/05/28 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python网络编程示例(客户端与服务端)
2014/04/24 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
Python简单生成8位随机密码的方法
2017/05/24 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
python实现网站微信登录的示例代码
2019/09/18 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
迪奥美国官网:Dior美国
2019/12/07 全球购物
蒂娜商店:Tiina the Store
2019/12/07 全球购物
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
心理健康日活动总结
2014/05/08 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
城南旧事观后感
2015/06/11 职场文书
Nginx进程管理和重载原理详解
2021/04/22 Servers
MySQL 分组查询的优化方法
2021/05/12 MySQL
Python集合set()使用的方法详解
2022/03/18 Python
redis 解决库存并发问题实现数量控制
2022/04/08 Redis
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers