Jean-Francois Ortolo a écrit :
Je cherche à trouver un algorithme ( le plus rapide ), qui, étant
donné deux chaînes de caractères ( ce sont des chiffres ), pourra
calculer la plus longue commune subséquence de de ces deux chaînes.
C'est un classique de la programmation dynamique (il est donné en
exercice la plupart du temps...) L'algorithme classique tourne en O(n²),
on le trouve partout sur internet; certaines variantes tournent en
O(n·log(n)) avec quelques hypothèses simplificatrices (par exemple en
considérant que chaque symbole apparaît au plus une fois dans chaque
mot), ce qui permet d'obtenir une solution «proche» de l'optimal assez
rapidement. Un algo linéaire résolvant ce problème ferait des heureux.
Vous trouverez des infos dans n'importe quel cours sur la programmation
dynamique. Pensez à chercher aussi du côté de la distance d'édition,
aussi appelée distance de Levenshtein. C'est la base d'outils comme la
commande diff sous UNIX.
--
Joe Cool