Pergunta sobre entrevista de algoritmo: Como reverter um número inteiro usando JavaScript

Uma pergunta de entrevista comum que muitos solicitantes de engenharia de software recebem é a pergunta de número inteiro reverso, que declara: “Dado um número inteiro, retorne um número inteiro que é a ordem inversa dos números”. Isso parece bastante simples, mas muitos programadores iniciantes geralmente lutam para encontrar uma solução completa. Este blog entrará em uma análise aprofundada e detalhadamente a resposta para esse problema.

Primeiro, vou apresentar a resposta e depois vou detalhar e explicar cada aspecto da resposta.

função reverseInt (n) {
const reverse = parseInt (n.toString (). split (''). reverse (). join (''))
retornar Math.sign (n) * reverse
}

Vamos examinar mais adiante.

Etapa 1) Primeiro, criamos uma função chamada reverseInt que recebe um argumento de um número (n). Embora não haja uma maneira interna de reverter um número em JS, sabemos que .reverse () pode ser chamado para reverter o conteúdo de uma matriz. Mas como transformar um número inteiro em uma matriz? Este é um processo de duas etapas. Vamos começar com o número 531. Vamos criar uma variável chamada reversa.

Etapa 2) Para iniciar isso, precisamos converter o número inteiro em uma string, então começamos com n.toString (), que consegue exatamente isso. 531 se tornará "531" se chamarmos 531.toString ().

Etapa 3) Se tivermos o número inteiro como uma string, podemos chamar .split ('') na string. Se você não estiver familiarizado com a função .split em JavaScript, confira este link. Split tem uma opção de separador e limite. Se uma sequência vazia (“”) for usada como separador, a sequência será dividida entre cada caractere. Retorna uma matriz com os itens que foram "divididos". Agora temos uma matriz em que cada elemento representa cada dígito do número inicial. "531" agora é [5, 3, 1]

Etapa 4) Agora que temos o número inteiro como uma matriz, podemos chamar .reverse () na matriz, que o reverterá. Se a matriz for [5, 3, 1], agora será [1, 3, 5]. Agora que o invertemos na forma de array, nosso próximo passo é transformá-lo novamente em uma string.

Etapa 5) Para transformar uma matriz em uma sequência, precisamos chamar o método .join () na matriz com os parâmetros de uma sequência vazia (""). Isso pegará nossa matriz, por exemplo [1, 3, 5] e a transformará em uma sequência de "135".

Etapa 6) Estamos tão perto agora! Invertemos nossa string, agora temos que transformá-la novamente em um número inteiro. A maneira como fazemos isso é passando para parseInt (). Depois que chamamos parseInt na string "135", nosso resultado é o número 135.

Etapa 7) Esta é uma etapa essencial, pois os números inteiros podem ser positivos ou negativos! Math.sign para o resgate! Math.sign () pega um número inteiro e, com base em seu sinal, retorna 1 ou -1. Se passarmos n como argumento para Math.sign, ele nos dará um 1 se for um número positivo ou -1 se for um número negativo, então tudo o que precisamos fazer é multiplicar o resultado de Math.sign (n) pela variável reversa número inteiro que recebemos para obter nossa resposta!

Aqui está, uma explicação detalhada de um método simples e eficaz para resolver o problema do número inteiro reverso. Feliz codificação!