天天看点

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

代码如下:<?php

$a = 'abceee12345309878';

$b = 'abceeew2345i09878fsfsfsfabceeewsfsdfsfsabceeew';

$c = array();

$lenht1 = strlen($a);

$lenth2 = strlen($b);

$startTime = microtime(true);

for ($i=0;$i

for ($j=0;$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"."

";

print_r(end($cdStr));

exit;

?>

运行结果:Totle time is 0.0012800693512 s

abceee