Introduction
Un anagramme est un mot ou une phrase formée en réarrangeant les lettres d'un autre mot ou phrase. Par exemple, "listen" est un anagramme de "silent". Dans ce défi, vous devrez écrire une fonction qui vérifie si deux chaînes de caractères sont des anagrammes l'une de l'autre.
Anagramme de chaîne de caractères
Écrivez une fonction is_anagram(s1, s2) qui prend deux chaînes de caractères en arguments et renvoie True si elles sont des anagrammes l'une de l'autre, et False sinon. La fonction doit être insensible à la casse, ignorer les espaces, la ponctuation et les caractères spéciaux.
Pour résoudre ce problème, vous pouvez suivre ces étapes :
- Utilisez
str.isalnum()pour filtrer les caractères non alphanumériques etstr.lower()pour transformer chaque caractère en minuscules. - Utilisez
collections.Counterpour compter les caractères résultants pour chaque chaîne et comparer les résultats.
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
Sommaire
Dans ce défi, vous avez appris à vérifier si deux chaînes de caractères sont des anagrammes l'une de l'autre. Vous avez utilisé str.isalnum() pour filtrer les caractères non alphanumériques, str.lower() pour transformer chaque caractère en minuscules, et collections.Counter pour compter les caractères résultants pour chaque chaîne et comparer les résultats.