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 中文乱码解决办法总结分析
Jul 30 PHP
php继承的一个应用
Sep 06 PHP
对于PHP 5.4 你必须要知道的
Aug 07 PHP
php递归创建目录的方法
Feb 02 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
Feb 15 PHP
php返回字符串中所有单词的方法
Mar 09 PHP
php使用Session和文件统计在线人数
Jul 04 PHP
php+mysql实现无限级分类
Nov 11 PHP
php微信公众账号开发之前五个坑(一)
Sep 18 PHP
PHP单态模式简单用法示例
Nov 16 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
Oct 17 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
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
php json与xml序列化/反序列化
2013/10/28 PHP
Drupal简体中文语言包安装教程
2014/09/27 PHP
php+mysql实现数据库随机重排实例
2014/10/17 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
2015/06/29 PHP
PHP中利用sleep函数实现定时执行功能实现代码
2016/08/25 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
一个原生的用户等级的进度条
2010/07/03 Javascript
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
详解用函数式编程对JavaScript进行断舍离
2017/09/18 Javascript
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
详解TypeScript+Vue 插件 vue-class-component的使用总结
2019/02/18 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
微信小程序开发(三):返回上一级页面并刷新操作示例【页面栈】
2020/06/01 Javascript
python实现DNS正向查询、反向查询的例子
2014/04/25 Python
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
python制作简单五子棋游戏
2019/06/18 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
html5与css3小应用
2013/04/03 HTML / CSS
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
Perfume’s Club英国官网:购买香水和护肤品
2019/11/02 全球购物
软件测试面试题
2014/01/05 面试题
理工大学毕业生自荐信
2013/11/01 职场文书
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
委托证明范本
2014/11/25 职场文书
2015年春节标语口号
2014/12/09 职场文书
钱学森电影观后感
2015/06/04 职场文书
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python