Levenshtein (rust)
Distance entre deux chaînes minuscules.
Énoncé
Calculez la distance de Levenshtein entre :
ezwjxtxjly
et
dzxttnho
(coût 1 insertion, 1 suppression, 1 substitution).
Entrée : deux lignes successives : ligne1 puis ligne2 (sans lignes vides entre).
Sortie : une ligne, l’entier distance.
Contraintes réelles
- Entrée : une seule ligne sur stdin (format indiqué ci-dessus), sans espaces superflus en fin de ligne.
- Sortie : une seule ligne sur stdout, exactement la valeur demandée (pas de texte d’explication).
- rust : bibliothèque standard uniquement ; pas d’accès réseau ni de fichiers autres que stdin/stdout.
- Complexité : respecter la borne indiquée dans l’énoncé (souvent O(n) ou O(n²) pour n ≤ 16).
Parcours pédagogique
- Piste : Distance d’édition (
serie-p-edit) — étape 1 sur cette famille. - Objectif : Distance de Levenshtein (coût insertion/suppression/substitution = 1).
- Indice global : numéro de défi 5299 / 10000 (famille 24/25, variante 212 / 400).
Indices
- Parsez stdin en types exacts (entier 64 bits signé si nécessaire).
- Testez sur papier avec les petites valeurs du gabarit.
- Vérifiez les cas limites mentionnés.
Solution possible
- Matrice (la+1)×(lb+1) ou une ligne optimisée O(min(la,lb)) mémoire.
Pseudo-code (rust)
# lire la ligne stdin → variables
# appliquer l’algorithme décrit
# print(resultat) # une ligne
Résultat de référence (tests automatisés)
La CI exécute la même logique que ce dépôt sur votre variante : la sortie attendue est exactement :
7
Référence (tests automatisés) : 7
Proposer une solution
Connectez-vous ou créez un compte pour envoyer votre texte (aucune exécution de code côté serveur).