Exercices de programmation pour classes préparatoires
La distance de Levenshtein (ou distance d'edition) entre deux chaines de caracteres s1 et s2 est le nombre minimal d'operations elementaires pour transformer s1 en s2. Les operations autorisees sont :
On note d(i, j) la distance de Levenshtein entre les i premiers caracteres de s1 et les j premiers caracteres de s2. La relation de recurrence est :
min(i, j) = 0 : d(i, j) = max(i, j)s1[i-1] == s2[j-1] : d(i, j) = d(i-1, j-1)d(i, j) = 1 + min(d(i-1, j), d(i, j-1), d(i-1, j-1))Ecrire une fonction levenshtein(s1, s2) qui calcule cette distance par programmation dynamique (approche bottom-up avec un tableau).
| Appel | Résultat attendu |
|---|---|
| levenshtein('chat', 'chats') | 1 |
| levenshtein('kitten', 'sitting') | 3 |
Connectez-vous pour soumettre du code.