Avancé
🧠 Fondamentaux
30 XP
0 personnes ont réussi
Plus longue sous-sequence commune (LCS)
La LCS (Longest Common Subsequence) est un problème fondamental en informatique. On l'utilise par exemple pour comparer des fichiers (comme git diff) ou des sequences ADN.
Une sous-sequence, ce n'est pas la meme chose qu'une sous-chaine. Les caracteres n'ont pas besoin d'etre contigus, juste dans le meme ordre. Par exemple, dans 'ABCDE', 'ACE' est une sous-sequence (on a garde A, C, E dans l'ordre).
On construit une matrice dp ou dp[i][j] contient la longueur de la LCS entre les i premiers caracteres de s1 et les j premiers de s2.
Si les caracteres courants sont egaux, on etend la LCS précédente de 1. Sinon, on prend le meilleur des deux sous-problèmes.