Solución al Ejercicio: Anagramas
📋 Copiar código
from collections import Counter
def es_anagrama(cadena1, cadena2):
"""
Verifica si dos cadenas son anagramas entre sí (ignorando espacios y mayúsculas/minúsculas).
Args:
cadena1: La primera cadena de texto.
cadena2: La segunda cadena de texto.
Returns:
True si las cadenas son anagramas, False en caso contrario.
"""
cadena1 = "".join(cadena1.lower().split())
cadena2 = "".join(cadena2.lower().split())
return Counter(cadena1) == Counter(cadena2)
# Ejemplo de uso:
texto1a = "listen"
texto1b = "silent"
resultado1 = es_anagrama(texto1a, texto1b)
print(f"¿'{texto1a}' y '{texto1b}' son anagramas? {resultado1}")
texto2a = "triangle"
texto2b = "integral"
resultado2 = es_anagrama(texto2a, texto2b)
print(f"¿'{texto2a}' y '{texto2b}' son anagramas? {resultado2}")
texto3a = "hello"
texto3b = "world"
resultado3 = es_anagrama(texto3a, texto3b)
print(f"¿'{texto3a}' y '{texto3b}' son anagramas? {resultado3}")
texto4a = "Anagram"
texto4b = "nag a ram"
resultado4 = es_anagrama(texto4a, texto4b)
print(f"¿'{texto4a}' y '{texto4b}' son anagramas? {resultado4}")
Explicación de la solución:
from collections import
Counter
: Importa la clase Counter
para contar
la frecuencia de los caracteres.
def es_anagrama(cadena1,
cadena2):
: Define la función que toma dos cadenas como
entrada.
cadena1 = "".join(cadena1.lower().split())
:
Procesa la primera cadena:
.lower()
: Convierte la
cadena a minúsculas.
.split()
: Divide la cadena
en una lista de palabras (por defecto, por espacios).
"".join(...)
: Une las
palabras resultantes sin ningún separador, eliminando así los espacios.
cadena2 = "".join(cadena2.lower().split())
:
Realiza la misma operación en la segunda cadena.
return Counter(cadena1) ==
Counter(cadena2)
: Crea un Counter
para cada
cadena procesada. Counter
esencialmente cuenta la frecuencia de
cada carácter en la cadena. Dos cadenas son anagramas si y solo si el conteo
de sus caracteres es idéntico. Por lo tanto, la función devuelve True
si los Counter
de ambas cadenas son iguales, y False
en caso contrario.
¡Intenta implementar esta función y probarla con
los ejemplos proporcionados en el "Ejecutor de Python Interactivo"!