Maison >développement back-end >tutoriel php >Comment trouver la sous-chaîne commune la plus longue de deux chaînes en PHP ?

Comment trouver la sous-chaîne commune la plus longue de deux chaînes en PHP ?

php中世界最好的语言
php中世界最好的语言original
2017-12-20 19:03:161355parcourir

Cet article vous montre principalement comment synthétiser la chaîne commune la plus longue à partir de deux chaînes en utilisant PHP. Impliquant la chaîne php et la traversée de tableaux, les opérations, le jugement et d'autres compétences opérationnelles connexes.

Le code est le suivant :

<?php
$a = &#39;abceee12345309878&#39;;
$b = &#39;abceeew2345i09878fsfsfsfabceeewsfsdfsfsabceeew&#39;;
$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;
?>

Résultats d'exécution :

Totle time is 0.0012800693512 s
abceee

Je crois que vous maîtrisez la méthode après avoir lu ces cas , plus excitant Veuillez prêter attention aux autres articles connexes sur le site Web chinois php !

Lecture connexe :

Comment générer un produit cartésien avec la fonction personnalisée PHP

Comment PHP résout le problème des grands sites Web trafic et haute concurrence

Explication détaillée des types de données javascript et du code d'utilisation de git

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn