Palíndromo recursivo en Python
"La recursividad nos enseña que los problemas grandes pueden resolverse al descomponerlos en partes más pequeñas y simétricas."
Un palíndromo recursivo es aquel que se detecta aplicando el mismo procedimiento varias veces, reduciendo el problema en cada paso hasta llegar a un caso base.
Este enfoque no solo sirve para practicar Python, sino que también aparece con frecuencia en entrevistas de programación.
Explicación del algoritmo recursivo
El algoritmo recursivo para detectar un palíndromo en una cadena funciona así:
- Comparar el primer carácter con el último.
- Si son distintos → no es un palíndromo.
- Si son iguales → llamar a la misma función con la subcadena interna (sin el primer y último carácter).
- Caso base:
- Si la cadena tiene 0 o 1 caracteres, es un palíndromo.
Ejemplo en Python
def es_palindromo_recursivo(cadena: str) -> bool:
# Normalizamos la cadena
cadena = cadena.lower().replace(" ", "")
# Caso base: cadenas vacías o de un solo caracter son palíndromos
if len(cadena) <= 1:
return True
# Comparar extremos
if cadena[0] != cadena[-1]:
return False
# Llamada recursiva con la subcadena
return es_palindromo_recursivo(cadena[1:-1])
print(es_palindromo_recursivo("radar")) # True
print(es_palindromo_recursivo("oso")) # True
print(es_palindromo_recursivo("python")) # False
print(es_palindromo_recursivo("Anita lava la tina"))# True
Ventajas del método recursivo
- Refuerza el concepto de recursividad en Python.
- Elegante y matemáticamente más cercano a la definición formal de palíndromo.
- Muy usado en retos de algoritmos y entrevistas.
Desventajas
- Menos eficiente que los métodos iterativos o slicing.
- En cadenas muy largas puede causar recursion depth exceeded.
- Normalmente se usa con fines educativos, no en producción.
Comprobar si una cadena es un palíndromo en Python con recursividad es una forma elegante de resolver el problema y entender cómo dividirlo en pasos más simples.
- Caso base: cadenas vacías o de 1 carácter.
- Paso recursivo: comparar extremos y reducir el problema.
- Aplicación: entrevistas, ejercicios académicos y práctica de algoritmos.
También te puede interesar: