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制作简单的内容采集器的代码
Nov 28 PHP
php中cookie的作用域
Mar 27 PHP
php5中类的学习
Mar 28 PHP
PHP抽象类 介绍
Jun 13 PHP
ThinkPHP令牌验证实例
Jun 18 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 PHP
Codeigniter校验ip地址的方法
Mar 21 PHP
php实现通用的信用卡验证类
Mar 24 PHP
使用PHP生成图片的缩略图的方法
Aug 18 PHP
Yii框架实现多数据库配置和操作的方法
May 25 PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 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
再说下636单管机
2021/03/02 无线电
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
vue中使用codemirror的实例详解
2018/11/01 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
jQuery实现穿梭框效果
2021/01/19 jQuery
python获取指定网页上所有超链接的方法
2015/04/04 Python
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
解决pandas 作图无法显示中文的问题
2018/05/24 Python
python实现在图片上画特定大小角度矩形框
2018/10/24 Python
python列表推导式入门学习解析
2019/12/02 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
基于python实现操作git过程代码解析
2020/07/27 Python
python 实现图片裁剪小工具
2021/02/02 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
致跳远、跳高运动员广播稿
2014/01/09 职场文书
致百米运动员广播稿
2014/01/29 职场文书
《挑山工》的教学反思
2014/02/16 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
雷锋精神演讲稿
2014/05/13 职场文书
计算机售后服务承诺书
2014/05/30 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
导游词之麻姑仙境
2019/11/18 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS