← JavaScript

Reto de código

determinar si un texto es un palíndromo.

Reto: determinar si un texto es un palíndromo.
Un palíndromo se lee igual al derecho y al revés.
Entrada: "reconocer"
Salida esperada: true
Ver solución
// Reto: determinar si un texto es un palíndromo.
// Un palíndromo se lee igual al derecho y al revés.
// Entrada: "reconocer"
// Salida esperada: true

// Solución: normalizamos el texto (minúsculas y sin espacios),
// lo invertimos y lo comparamos con el original.
function esPalindromo(texto) {
  // Quitamos espacios y pasamos todo a minúsculas para una comparación justa.
  const limpio = texto.toLowerCase().replace(/\s/g, "");
  const invertido = limpio.split("").reverse().join("");
  return limpio === invertido;
}

console.log(esPalindromo("reconocer"));        // true
console.log(esPalindromo("Anita lava la tina")); // true (ignora espacios y mayúsculas)
console.log(esPalindromo("javascript"));       // false
console.log(esPalindromo("ala"));              // true
console.log(esPalindromo(""));                 // true (caso límite: vacío)

// Explicación:
// replace(/\s/g, "") elimina todos los espacios. toLowerCase() normaliza
// mayúsculas y minúsculas. Luego comparamos el texto limpio con su versión
// invertida: si son iguales, es un palíndromo.

module.exports = { esPalindromo };