Codifica: conversione di numeri romani in numeri interi in JavaScript- LeetCode(13)

Feb 01 2023
In questo articolo, discuteremo di un pezzo di codice progettato per convertire i valori romani in numeri interi. Il codice è una funzione JavaScript denominata "romanToInt" che accetta un argomento stringa "s", che rappresenta un numero romano.

In questo articolo, discuteremo di un pezzo di codice progettato per convertire i valori romani in numeri interi.

Il codice è una funzione JavaScript denominata "romanToInt" che accetta un argomento stringa "s", che rappresenta un numero romano. La funzione converte il numero romano in un numero intero e restituisce il risultato.

La funzione inizia definendo un oggetto "mappa" che associa ogni simbolo di numero romano al valore intero corrispondente. Ad esempio, "I" corrisponde a 1, "V" corrisponde a 5 e così via.

Successivamente, la funzione dichiara una variabile "risultato" e la inizializza a 0. Questa variabile verrà utilizzata per memorizzare il risultato intero finale.

La funzione utilizza quindi un ciclo for per scorrere ogni carattere nella stringa di input "s". Per ogni carattere, la funzione cerca il valore intero corrispondente nell'oggetto "mappa".

Se il carattere corrente non è l'ultimo carattere della stringa, la funzione controlla il valore del carattere successivo. Se il carattere successivo ha un valore superiore al carattere corrente, la funzione aggiunge la differenza tra i due valori alla variabile "risultato". Questo perché i simboli dei numeri romani possono essere combinati per rappresentare valori più grandi, come "IV" (4) o "IX" (9).

Infine, la funzione restituisce il valore "risultato" finale, che rappresenta l'equivalente intero del numero romano di input.

Ad esempio, se chiamiamo "romanToInt("XXI")", la funzione restituirà 21.

Ecco un frammento di codice che spiega la funzione "romanToInt" in modo dettagliato:

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;
}

Ad esempio, se chiamiamo "romanToInt("XXI")", l'output della console sarà simile a questo:

Se sei interessato a saperne di più sulla codifica in Javascript, assicurati di seguirmi per ulteriori frammenti di codice ed esempi. Condividerò preziose informazioni e suggerimenti su come padroneggiare la lingua e migliorare le tue capacità di sviluppatore. Quindi, resta sintonizzato per ulteriori aggiornamenti e continuiamo a imparare insieme.

Grazie per aver letto. Buon apprendimento

Sostieni la nostra pubblicazione seguendola

Java 8: predicato, consumatore e fornitore Perché le startup dovrebbero scegliere React Native rispetto alle applicazioni ibride? Serializzazione e deserializzazione in Java [Interni di Java Parte 6] [Seconda parte] Parte 2: Principali domande frequenti su JavaScript (6–9) Integrazione di Splunk con SpringBoot - Parte finale