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 相关文章推荐
WindowsXP中快速配置Apache+PHP5+Mysql
Jun 05 PHP
linux下实现定时执行php脚本
Feb 13 PHP
php中explode的负数limit用法分析
Feb 27 PHP
PHP实现阳历到农历转换的类实例
Mar 07 PHP
php实现httpRequest的方法
Mar 13 PHP
必须收藏的php实用代码片段
Feb 02 PHP
PHP 配置后台登录以及模板引入
Jan 24 PHP
PHP中Notice错误常见解决方法
Apr 28 PHP
php变量与JS变量实现不通过跳转直接交互的方法
Aug 25 PHP
php 策略模式原理与应用深入理解
Sep 25 PHP
Centos7安装swoole扩展操作示例
Mar 26 PHP
thinkphp 框架数据库切换实现方法分析
May 18 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(2)
2006/10/09 PHP
ThinkPHP采用模块和操作分析
2011/04/18 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
php-fpm中max_children的配置
2019/03/15 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
2014/07/27 Javascript
jQuery中:reset选择器用法实例
2015/01/04 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
2016/03/13 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
2016/09/28 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
JS实现判断数组是否包含某个元素示例
2019/05/24 Javascript
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
简单的抓取淘宝图片的Python爬虫
2014/12/25 Python
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
Python找出微信上删除你好友的人脚本写法
2018/11/01 Python
Pyinstaller打包.py生成.exe的方法和报错总结
2019/04/02 Python
python函数的作用域及关键字详解
2019/08/20 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
美国一家主打母婴用品的团购网站:zulily
2017/09/19 全球购物
罗技英国官方网站:Logitech UK
2020/11/03 全球购物
面向游戏玩家和书呆子的极客订阅盒:Loot Crate
2020/11/25 全球购物
党员组织关系介绍信
2014/02/13 职场文书
关于清明节的演讲稿
2014/09/13 职场文书
教师党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
总经理岗位职责
2015/02/04 职场文书
学校远程教育工作总结
2015/08/11 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
golang 生成对应的数据表struct定义操作
2021/04/28 Golang