Check Anagrams in Python
"listen" and "silent" use the same letters. Normalize both words, sort the letters and compare.
- Normalizing case and spaces
- Comparing sorted letters
- Using collections.Counter instead
e i l n s t
e i l n s t
- equal → anagrams
Same letters, different order
Dos cadenas son anagramas cuando contienen exactamente las mismas letras, solo que en otro orden, como "listen" y "silent". Para comprobarlo de forma sencilla, se normalizan las dos cadenas y se ordenan sus letras. Si los resultados son iguales, son anagramas.
Puntos clave
- Lowercase both texts and remove spaces.
sorted("listen")andsorted("silent")give the same list.Counter(a)==Counter(b)works too and isO(n).
¿Cuándo se usa?
- Aprender la sintaxis y los conceptos básicos de Python con ejemplos cortos y fáciles de entender.
- Construir una base sólida antes de pasar a problemas más complejos.
- Ejecutar el código directamente en el navegador, sin instalar Python en el ordenador.
Código de ejemplo
def normalize(text):
# Ignore spaces, punctuation, and letter case.
return sorted(character.lower() for character in text if character.isalpha())
first, second = "listen", "silent"
result = "are" if normalize(first) == normalize(second) else "are not"
print(f"{first} and {second} {result} anagrams")
Resultado de la ejecución
listen and silent are anagrams
Explicación del código
La función normalize() solo conserva las letras (comprobadas con isalpha()), las pasa a minúsculas y las ordena. Así, los espacios, la puntuación y las mayúsculas no influyen en el resultado. Como las listas de letras ordenadas de "listen" y "silent" son iguales, el programa concluye que son anagramas.
Cambia los valores y ejecuta el programa en el compilador Python online de CodeUtility sin instalar Python.
Ejercicios de práctica
Prueba a modificar el código siguiendo las ideas de abajo. Cambiar el código y ver el resultado te ayudará a entender la lección mucho mejor que solo leerla.
- Cambia los datos de entrada y predice el resultado antes de ejecutar.
- Añade una comprobación para datos vacíos o no válidos.
- Pasa el proceso a una función aparte y pruébala con varios conjuntos de datos.
Practica con un reto
Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.
- Verificación de Anagramas Verifica si dos frases usan las mismas letras. Fácil
- Verificación de Pangrama Un pangrama contiene cada letra del alfabeto inglés al menos una vez. Fácil