Verificador de anagramas: un desafío de Python

Beginner

This tutorial is from open-source community. Access the source code

Introducción

Un anagrama es una palabra o frase formada al reordenar las letras de una palabra o frase diferente. Por ejemplo, "listen" es un anagrama de "silent". En este desafío, se te pedirá escribir una función que compruebe si dos cadenas son anagramas una de la otra.

Anagrama de cadenas

Escribe una función is_anagram(s1, s2) que tome dos cadenas como argumentos y devuelva True si son anagramas una de la otra, y False en caso contrario. La función debe ser insensible a mayúsculas y minúsculas, ignorar espacios, signos de puntuación y caracteres especiales.

Para resolver este problema, puedes seguir estos pasos:

  1. Utiliza str.isalnum() para filtrar los caracteres no alfanuméricos y str.lower() para transformar cada carácter a minúsculas.
  2. Utiliza collections.Counter para contar los caracteres resultantes de cada cadena y comparar los resultados.
from collections import Counter

def is_anagram(s1, s2):
  return Counter(
    c.lower() for c in s1 if c.isalnum()
  ) == Counter(
    c.lower() for c in s2 if c.isalnum()
  )
is_anagram('#anagram', 'Nag a ram!')  ## True

Resumen

En este desafío, has aprendido cómo comprobar si dos cadenas son anagramas una de la otra. Has utilizado str.isalnum() para filtrar los caracteres no alfanuméricos, str.lower() para transformar cada carácter a minúsculas y collections.Counter para contar los caracteres resultantes de cada cadena y comparar los resultados.