Codage : Conversion de chiffres romains en nombres entiers en JavaScript - LeetCode(13)

Feb 01 2023
Dans cet article, nous discuterons d'un morceau de code conçu pour convertir des valeurs romaines en nombres entiers. Le code est une fonction JavaScript nommée "romanToInt" qui prend un argument de chaîne "s", qui représente un chiffre romain.

Dans cet article, nous discuterons d'un morceau de code conçu pour convertir des valeurs romaines en nombres entiers.

Le code est une fonction JavaScript nommée "romanToInt" qui prend un argument de chaîne "s", qui représente un chiffre romain. La fonction convertit le chiffre romain en entier et renvoie le résultat.

La fonction commence par définir un objet "carte" qui associe chaque symbole numérique romain à sa valeur entière correspondante. Par exemple, "I" correspond à 1, "V" correspond à 5, etc.

Ensuite, la fonction déclare une variable "résultat" et l'initialise à 0. Cette variable sera utilisée pour stocker le résultat entier final.

La fonction utilise ensuite une boucle for pour itérer sur chaque caractère de la chaîne d'entrée "s". Pour chaque caractère, la fonction recherche sa valeur entière correspondante dans l'objet "map".

Si le caractère courant n'est pas le dernier caractère de la chaîne, la fonction vérifie la valeur du caractère suivant. Si le caractère suivant a une valeur supérieure au caractère courant, la fonction ajoute la différence entre les deux valeurs à la variable "résultat". En effet, les symboles des chiffres romains peuvent être combinés pour représenter des valeurs plus grandes, telles que « IV » (4) ou « IX » (9).

Enfin, la fonction renvoie la valeur finale du "résultat", qui représente l'entier équivalent du chiffre romain d'entrée.

Par exemple, si nous appelons "romanToInt("XXI")", la fonction renverra 21.

Voici un extrait de code qui explique la fonction "romanToInt" étape par étape :

function romanToInt(s) {
  const map = {
    I: 1,
    V: 5,
    X: 10,
    L: 50,
    C: 100,
    D: 500,
    M: 1000
  };
  let result = 0;
  for (let i = 0; i < s.length; i++) {
    let value = map[s[i]]; // Look up the integer value of the current character
    console.log(`${s[i]} maps to ${value}`);
    if (i + 1 < s.length) {
      let nextValue = map[s[i + 1]];
      console.log(`Next character ${s[i+1]} maps to ${nextValue}`);
      if (nextValue > value) {
        value = nextValue - value; // Calculate the combined value of two symbols
        console.log(`Combined value of ${s[i]} and ${s[i+1]} is ${value}`);
        i++;
      }
    }
    result += value; // Add the current value to the final result
    console.log(`Result so far: ${result}`);
  }
  return result;
}

Par exemple, si nous appelons "romanToInt("XXI")", la sortie de la console ressemblera à ceci :

Si vous souhaitez en savoir plus sur le codage en Javascript, assurez-vous de me suivre pour plus d'extraits de code et d'exemples. Je partagerai des informations précieuses et des conseils sur la façon de maîtriser la langue et d'améliorer vos compétences en tant que développeur. Alors, restez à l'écoute pour plus de mises à jour, et continuons à apprendre ensemble.

Merci d'avoir lu. Bon apprentissage

Soutenez notre publication en la suivant

Java 8 — Prédicat, consommateur et fournisseur Pourquoi les startups devraient-elles choisir React Native plutôt que les applications hybrides ? Sérialisation et désérialisation en Java [ Java Internals Part 6 ] [ Second part] Partie 2 : Principales (6–9) questions JavaScript courantes Intégration de Splunk avec SpringBoot — Partie finale