加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2023-10-06 11:47:28 所属栏目:PHP教程 来源:
导读:代码如下:

<?php
$a = &#39;abceee12345309878&#39;;
$b = &#39;abceeew2345i09878fsfsfsfabceeewsfsdfsfsabceeew&#39;;
$c = array();
$lenht1 = strlen($a);
$lenth2 = strlen($b);
$startTime =
代码如下:

<?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); 
    } //Cuoxin.com 
  } 

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 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章