PHP实现求两个字符串最长公共子串的方法示例

 更新时间:2017年11月17日 10:23:33   作者:yujicun  
这篇文章主要介绍了PHP实现求两个字符串最长公共子串的方法,涉及php字符串与数组的遍历、运算、判断等相关操作技巧,需要的朋友可以参考下

本文实例讲述了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程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》及《PHP数学运算技巧总结

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • php生成图形验证码几种方法小结

    php生成图形验证码几种方法小结

    生成图形验证码需要使用php GD库来生成,如果你没开户GD库我们需要在php.ini文件找到extension=php_gd2.dll 去掉前面的;就行了,然后重启apache 或iis环境即可
    2013-08-08
  • PHP form 表单传参明细研究

    PHP form 表单传参明细研究

    最近一段时间一直在做基于uchome的二次开发网站,因uchome中的很多跳转都是通过参数do来控制的,一直对这种机制不是十分的明细,总有一种雾里看花的感觉。
    2009-07-07
  • phpstudy无法启动MySQL服务的三种问题解决

    phpstudy无法启动MySQL服务的三种问题解决

    本文主要介绍了phpstudy无法启动MySQL服务的问题解决,包括停止本地mysql服务、修改phpstudy中的mysql端口号以及暂时删除本地服务,具有一定的参考价值,感兴趣的可以了解一下
    2025-03-03
  • 用php解析html的实现代码

    用php解析html的实现代码

    用php解析html的实现代码,一般做采集的朋友需要用得到。
    2011-08-08
  • php查询及多条件查询

    php查询及多条件查询

    本文给大家分享的是使用php实现单条件以及多条件查询的代码及示例,非常实用,有需要的小伙伴可以参考下
    2017-02-02
  • 使用游标进行PHP SQLSRV查询的方法与注意事项

    使用游标进行PHP SQLSRV查询的方法与注意事项

    在 PHP 中使用 SQLSRV 查询时,如果查询结果集较大,可以考虑使用游标来提高查询效率。使用游标可以将查询结果集分成多个小部分进行处理,减轻服务器的负担,提高查询性能
    2023-05-05
  • php 常用类整理

    php 常用类整理

    在实际开发过程会经常会遇到一些重复的操作,如果每次都要自己去实现这无疑加重了自己的工作量,下面对一些可能经常用到的类做个整理.
    2009-12-12
  • php进行md5加密简单实例方法

    php进行md5加密简单实例方法

    在本文里小编给大家整理了一篇非常实用的php如何进行md5加密知识点内容,有需要的朋友们可以参考下。
    2019-09-09
  • 必须收藏的23个php实用代码片段

    必须收藏的23个php实用代码片段

    这篇文章主要为大家分享了必须收藏的23个php实用代码片段,帮助大家更好地学习php程序设计,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • 跨浏览器PHP下载文件名中的中文乱码问题解决方法

    跨浏览器PHP下载文件名中的中文乱码问题解决方法

    这篇文章主要介绍了跨浏览器PHP下载文件名中的中文乱码问题解决方法,涉及php针对中文编码的转码技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03

最新评论