Vérificateur d'anagrammes : Un défi Python

PythonPythonBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

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 :

  1. Utilisez str.isalnum() pour filtrer les caractères non alphanumériques et str.lower() pour transformer chaque caractère en minuscules.
  2. Utilisez collections.Counter pour 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.