6 Ejercicio 1
馃搶 Ejercicio 1: Verificar si dos palabras son anagramas
¿Sab铆as que "Par铆s" y "prisa" son anagramas? 馃く Dos palabras son anagramas si contienen las mismas letras, con las mismas frecuencias, pero en distinto orden.
馃攳 Soluci贸n propuesta
python
def anagrama(s1, s2):
# Eliminar espacios y convertir a min煤sculas
s1 = s1.replace(" ", "").lower()
s2 = s2.replace(" ", "").lower()
# Casos base
if s1 == s2:
return False # Misma palabra no cuenta
if len(s1) != len(s2):
return False # Longitudes diferentes
# Contador de frecuencias
contador = {}
# A帽adir letras de s1 al contador
for letra in s1:
if letra in contador:
contador[letra] += 1
else:
contador[letra] = 1
# Restar letras de s2 al contador
for letra in s2:
if letra in contador:
contador[letra] -= 1
else:
return False # Letra no existe en s1
# Verificar que todas las frecuencias sean 0
for valor in contador.values():
if valor != 0:
return False
return True
馃И Ejemplos de uso
python
print(anagrama("Par铆s", "prisa")) # True ✅
print(anagrama("poder", "Pedro")) # True ✅
print(anagrama("hola", "aloh")) # True ✅
print(anagrama("casa", "saca")) # True ✅
print(anagrama("gato", "pato")) # False ❌
馃摑 Explicaci贸n
Normalizaci贸n: Eliminamos espacios y convertimos a min煤sculas para evitar diferencias por formato.
Casos base:
Si las palabras son id茅nticas → False.
Si tienen longitudes diferentes → False.
Diccionario de frecuencias:
Contamos cada letra en s1 y luego restamos las de s2.
Si todas las frecuencias terminan en 0, son anagramas.
馃挕 ¿Se te ocurre otra forma de resolverlo?
¡Comparte tu soluci贸n en los comentarios! 馃憞
#Python #Programaci贸n #Anagramas #Algoritmos #Ejercicios
Notas adicionales:
Puedes optimizar el c贸digo usando collections.defaultdict o collections.Counter.
Ideal para entrevistas t茅cnicas o ejercicios de l贸gica.
¿Te gust贸? ¡Dale like y comparte! 馃殌
Comentarios
Publicar un comentario