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 相关文章推荐
一个连接两个不同MYSQL数据库的PHP程序
Oct 09 PHP
php合并数组array_merge函数运算符加号与的区别
Oct 31 PHP
php执行sql语句的写法
Mar 10 PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
Aug 06 PHP
php数组函数序列之in_array() 查找数组值是否存在
Oct 29 PHP
php中global和$GLOBALS[]的分析之一
Feb 02 PHP
ThinkPHP让分页保持搜索状态的方法
Jul 02 PHP
php根据用户语言跳转相应网页
Nov 04 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
May 13 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
Jun 05 PHP
PHP 常用时间函数资料整理
Oct 22 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
Mar 09 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/10/09 PHP
生成sessionid和随机密码的例子
2006/10/09 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
2015/07/29 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
2017/05/29 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
JavaScript获取DOM元素的11种方法总结
2015/04/25 Javascript
JS实现slide文字框缩放伸展效果代码
2015/11/05 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
2015/12/04 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
jQuery获取当前点击的对象元素(实现代码)
2016/05/19 Javascript
基于Vue2的移动端开发环境搭建详解
2016/11/03 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
Vuex之理解Mutations的用法实例
2017/04/19 Javascript
react native 原生模块桥接的简单说明小结
2019/02/26 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
python win32 简单操作方法
2017/05/25 Python
简单了解Python中的几种函数
2017/11/03 Python
详解python中Numpy的属性与创建矩阵
2018/09/10 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
详解html2canvas截图不能截取圆角图片的解决方案
2018/01/30 HTML / CSS
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
写好自荐信要注意的问题
2013/11/10 职场文书
通信生自我鉴定
2014/01/18 职场文书
卖车协议书
2014/04/21 职场文书
品酒会策划方案
2014/05/26 职场文书
禁毒宣传标语
2014/06/19 职场文书
考博导师推荐信范文
2015/03/27 职场文书
银行实习推荐信
2015/03/27 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
小学运动会通讯稿
2015/07/18 职场文书
初中生物教学随笔
2015/08/15 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书
Python中tqdm的使用和例子
2022/09/23 Python