Maison > interface Web > js tutoriel > LeetCode : chiffre romain en nombre entier

LeetCode : chiffre romain en nombre entier

Mary-Kate Olsen
Libérer: 2024-12-17 17:38:18
original
981 Les gens l'ont consulté

LeetCode: Roman Numeral to Integer

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.

Le système de chiffres romains

Avant de plonger dans le code, comprenons comment fonctionnent les chiffres romains :

  • Symboles de base : I (1), V (5), X (10), L (50), C (100), D (500), M (1000)
  • Les nombres s'écrivent généralement du plus grand au plus petit, de gauche à droite
  • Quand un nombre plus petit précède un nombre plus grand, cela signifie soustraction

La solution

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
}

Copier après la connexion

Comment ça marche : étape par étape

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 :

  • Si la valeur actuelle est inférieure à la valeur suivante, nous la soustrayons (gère les cas comme IV = 4)
  • Sinon, on l'ajoute à notre résultat (gère des cas comme VI = 6)

Exemples

romanToInteger("III") → 3
Chaque I ajoute 1 au résultat

romanVersInteger("IV") → 4
I est soustrait car c'est inférieur à V

romanVersInteger("IX") → 9
I est soustrait car c'est inférieur à X

Conclusion

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal