Les chiffres romains sont un système de numérotation ancien qui est encore utilisé aujourd'hui. Les convertir en entiers réguliers est un défi de programmation courant. Décomposons une solution qui gère avec élégance cette conversion.
Avant de plonger dans le code, comprenons comment fonctionnent les chiffres romains :
function romanToInteger(str) { let symbols = { I: 1, V: 5, X: 10, L: 50, C: 100, D: 500, M: 1000, } let result = 0 for (let i = 0; i < str.length; i++) { const current = str[i] const next = str[i + 1] if (symbols[current] < symbols[next]) { result -= symbols[current] } else { result += symbols[current] } } return result }
1. Cartographie des symboles
Tout d’abord, nous créons un objet qui mappe chaque chiffre romain à sa valeur entière correspondante. Cela facilite la recherche rapide de valeurs.
2. Itérer à travers la chaîne
Nous parcourons chaque caractère de la chaîne d'entrée, en gardant une trace du caractère actuel et du suivant.
3. La logique de base
Pour chaque personnage, nous comparons sa valeur avec la valeur du personnage suivant :
romanToInteger("III") → 3
Chaque I ajoute 1 au résultatromanVersInteger("IV") → 4
I est soustrait car c'est inférieur à VromanVersInteger("IX") → 9
I est soustrait car c'est inférieur à X
Cette solution gère avec élégance la conversion des chiffres romains en nombres entiers en utilisant une technique de comparaison simple. Le code est concis mais suffisamment puissant pour gérer toutes les entrées de chiffres romains valides.
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!