Codificação: Convertendo algarismos romanos em números inteiros em JavaScript- LeetCode(13)

Feb 01 2023
Neste artigo, discutiremos um trecho de código projetado para converter valores romanos em inteiros. O código é uma função JavaScript chamada “romanToInt” que recebe um argumento de string “s”, que representa um numeral romano.

Neste artigo, discutiremos um trecho de código projetado para converter valores romanos em inteiros.

O código é uma função JavaScript chamada “romanToInt” que recebe um argumento de string “s”, que representa um numeral romano. A função converte o numeral romano em um número inteiro e retorna o resultado.

A função começa definindo um “mapa” de objeto que mapeia cada símbolo numeral romano para seu valor inteiro correspondente. Por exemplo, “I” mapeia para 1, “V” mapeia para 5 e assim por diante.

A seguir, a função declara uma variável “resultado” e a inicializa com 0. Esta variável será utilizada para armazenar o resultado inteiro final.

A função então usa um loop for para iterar sobre cada caractere na string de entrada “s”. Para cada caractere, a função procura seu valor inteiro correspondente no objeto “mapa”.

Se o caractere atual não for o último caractere da string, a função verifica o valor do próximo caractere. Se o próximo caractere tiver um valor maior que o caractere atual, a função adiciona a diferença entre os dois valores à variável “resultado”. Isso ocorre porque os símbolos numéricos romanos podem ser combinados para representar valores maiores, como “IV” (4) ou “IX” (9).

Por fim, a função retorna o valor “resultado” final, que representa o número inteiro equivalente ao numeral romano de entrada.

Por exemplo, se chamarmos “romanToInt(“XXI”)”, a função retornaria 21.

Aqui está um trecho de código que explica a função “romanToInt” passo a passo:

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

Por exemplo, se chamarmos “romanToInt(“XXI”)”, a saída do console ficaria assim:

Se você estiver interessado em aprender mais sobre codificação em Javascript, siga-me para mais exemplos e trechos de código. Estarei compartilhando informações e dicas valiosas sobre como dominar o idioma e aprimorar suas habilidades como desenvolvedor. Portanto, fique atento para mais atualizações e vamos continuar aprendendo juntos.

Obrigado pela leitura.Bom aprendizado

Apoie nossa publicação seguindo-a

Java 8 — Predicado, consumidor e fornecedor Por que as startups devem escolher aplicativos React Native em vez de aplicativos híbridos? Serialização e desserialização em Java [Java Internals Parte 6] [Segunda parte] Parte 2: Principais(6–9) Perguntas comuns sobre JavaScript Integração do Splunk com SpringBoot — Parte final