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
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 = '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; ?>
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!