Maison >développement back-end >tutoriel php >Explication détaillée de l'utilisation de PHP pour trouver la sous-chaîne commune la plus longue de deux chaînes

Explication détaillée de l'utilisation de PHP pour trouver la sous-chaîne commune la plus longue de deux chaînes

*文
*文original
2018-01-03 17:41:292283parcourir

Comment trouver la sous-chaîne commune la plus longue de deux chaînes en utilisant PHP ? Cet article présente principalement la méthode permettant de trouver la sous-chaîne commune la plus longue de deux chaînes en PHP, impliquant la traversée, l'opération, le jugement et d'autres compétences opérationnelles connexes des chaînes et des tableaux PHP. Les amis dans le besoin peuvent s'y référer. J'espère que cela aide tout le monde.

La méthode PHP précédente pour résoudre le problème de sous-chaîne commune le plus long a été améliorée sur la base de Java. Nous examinons ici un autre algorithme de sous-chaîne courant.

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ésultat d'exécution :

Totle time is 0.0012800693512 s
abceee

Recommandations associées :

Explication détaillée de la bibliothèque de fonctions BC d'opération de haute précision PHP

Explication détaillée de la méthode PHP de calcul de la stabilité des scores des étudiants

Explication détaillée de la vulnérabilité de désérialisation de session de PHP

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