Verificar si una cadena es palíndromo en Python

"En cada cadena de texto se esconden patrones, y los palíndromos nos recuerdan que la simetría también tiene su lógica en la programación."

Un palíndromo en cadenas es una palabra o frase que se lee igual de izquierda a derecha y de derecha a izquierda.
Algunos ejemplos comunes son:

  • "oso"
  • "radar"
  • "anita lava la tina"

En este tutorial aprenderás a detectar si una cadena es palíndromo en Python, usando diferentes métodos.

Método 1: Usando slicing en Python

Python permite invertir cadenas fácilmente con [::-1].
Este es el método más simple y directo.

def es_palindromo(cadena: str) -> bool:
    cadena = cadena.lower().replace(" ", "")
    return cadena == cadena[::-1]

print(es_palindromo("radar"))              # True
print(es_palindromo("python"))             # False
print(es_palindromo("Anita lava la tina")) # True

Ventajas:

  • Muy corto y fácil de leer.
  • Ideal para ejercicios rápidos y entrevistas.

Método 2: Usando un bucle for

Si quieres hacerlo sin atajos, puedes comparar cada carácter de la cadena con su equivalente desde el final.

def es_palindromo_bucle(cadena: str) -> bool:
    cadena = cadena.lower().replace(" ", "")
    for i in range(len(cadena) // 2):
        if cadena[i] != cadena[-i - 1]:
            return False
    return True

print(es_palindromo_bucle("oso"))   # True
print(es_palindromo_bucle("hola"))  # False

Ventajas:

  • Te ayuda a entender cómo funcionan los índices.
  • Útil para comprender la lógica detrás del problema.

Método 3: Usando la función reversed()

Otra alternativa es invertir la cadena con reversed() y luego unir los caracteres.

def es_palindromo_reversed(cadena: str) -> bool:
    cadena = cadena.lower().replace(" ", "")
    return cadena == "".join(reversed(cadena))

print(es_palindromo_reversed("radar"))  # True

Consideraciones importantes

  • Conviene normalizar el texto: pasar a minúsculas y eliminar espacios.
  • Si se incluyen acentos o caracteres especiales, puede usarse unicodedata para normalizarlos.
  • Esto hace que el algoritmo sea más robusto para frases largas.

También te puede interesar: