Ejercicios y problemas comunes con palíndromos en Python

"Cada problema común que enfrentas es una oportunidad para convertir la confusión en claridad y la práctica en aprendizaje."

Aprender a trabajar con palíndromos en Python no solo es divertido, sino que también te ayuda a mejorar tus habilidades en manipulación de strings, bucles, funciones y algoritmos.

En esta sección encontrarás una colección de ejercicios prácticos y problemas comunes para que refuerces tus conocimientos.

Ejercicio 1: Verificar si una palabra es palíndromo

Enunciado:
Escribe un programa que pida una palabra al usuario y determine si es un palíndromo.

palabra = input("Ingresa una palabra: ")

if palabra == palabra[::-1]:
    print("Es un palíndromo")
else:
    print("No es un palíndromo")

Ejercicio 2: Palíndromos en una lista de palabras

Enunciado: Dada una lista de palabras, filtra únicamente las que sean palíndromos.

palabras = ["oso", "radar", "python", "civic", "reconocer"]

palindromos = [p for p in palabras if p == p[::-1]]

print("Palíndromos encontrados:", palindromos)

Salida:

Palíndromos encontrados: ['oso', 'radar', 'civic', 'reconocer']

Ejercicio 3: Palíndromos ignorando mayúsculas y acentos

Enunciado:

Mejora el programa para que no importe si la palabra está en mayúsculas o minúsculas, y además quite tildes antes de verificar.

import unicodedata

def normalizar(palabra):
    palabra = palabra.lower()
    palabra = ''.join(
        c for c in unicodedata.normalize('NFD', palabra)
        if unicodedata.category(c) != 'Mn'
    )
    return palabra

palabra = input("Ingresa una palabra: ")
palabra_norm = normalizar(palabra)

if palabra_norm == palabra_norm[::-1]:
    print("Es un palíndromo")
else:
    print("No es un palíndromo")

Ejercicio 4: Contar cuántos palíndromos hay en una lista

Enunciado: Dada una lista de palabras, muestra cuántas son palíndromos.

palabras = ["oso", "luz", "radar", "casa", "ana"]

cantidad = sum(1 for p in palabras if p == p[::-1])
print("Cantidad de palíndromos:", cantidad)

Salida:

Cantidad de palíndromos: 3

Problemas comunes al trabajar con palíndromos

  1. Sensibilidad a mayúsculas y minúsculas

  2. "Oso" puede no detectarse como palíndromo si no se convierte a minúsculas.

  3. Espacios y signos de puntuación

  4. Frases como "anita lava la tina" deben limpiarse antes de verificarse.

  5. Acentos y caracteres especiales

  6. Palabras como "reconocér" pueden dar falsos negativos si no se eliminan las tildes.

  7. Velocidad en listas grandes

  8. Usar comprensión de listas o funciones optimizadas es mejor que bucles innecesarios.

Retos adicionales

  • Detectar palíndromos en frases completas, eliminando espacios y signos.
  • Crear un programa recursivo para verificar palíndromos.
  • Hacer un script que lea un archivo de texto y extraiga todas las palabras que sean palíndromos.

Practicar con ejercicios y problemas de palíndromos en Python te permitirá dominar mejor las cadenas, listas y algoritmos de verificación. Son una excelente base para desarrollar lógica de programación y preparar el camino hacia proyectos más avanzados.

También te puede interesar: