Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

460
Visualizações
Palindrome checker no funciona correctamente con "casi tomla"

 function palindrome(str) { const forward = str.replace(/[^a-zA-Z ]/g, "").toUpperCase() const reversed = str.replace(/[^a-zA-Z ]/g, "").toUpperCase() for (let i = 0; i < forward.length; i++) { for (let k = reversed.length - 1; k >= 0; k--) { if (forward[i] === reversed[k]) { return true } else { return false } } } } console.log(palindrome("almostomla"));

¿Por qué esto no funciona? ¿Mi ciclo simplemente crea una nueva "s"?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

No necesita bucles anidados, eso comparará cada carácter con cualquier otro carácter. Solo desea comparar el primer carácter con el último carácter, el segundo carácter con el segundo hasta el último carácter, y así sucesivamente. Por lo tanto, solo debería haber un solo bucle que incremente i y disminuya k en el paso de bloqueo.

No debe devolver true cuando encuentre una coincidencia, porque podría haber caracteres posteriores que no coincidan. Devuelve false cuando encuentres una discrepancia y devuelve true si superas el ciclo sin volver.

No necesita variables forward e reversed , ya que son lo mismo. Simplemente convierta la cadena de entrada a mayúsculas una vez y utilícela para ambas.

No necesita iterar a través de toda la cadena, puede detenerse cuando llegue al medio.

 function palindrome(str) { const upper = str.replace(/[^a-zA-Z ]/g, "").toUpperCase() for (let i = 0, k = upper.length - 1; i < upper.length/2; i++, k--) { if (upper[i] !== upper[k]) { return false } } return true; } console.log(palindrome("almostomla")); console.log(palindrome("almotomla")); console.log(palindrome("almottomla"));

about 4 years ago · Juan Pablo Isaza Relatório

0

Es posible que desee esto:

 function palindrome(str) { const forward = str.replace(/[^a-zA-Z ]/g, "").toUpperCase() var n = forward.length for (let i = 0; i < n; i++) { if (forward[i] !== forward[ni-1]) { return false; } } return true; }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda