Skip to content

Anagram

But de l'éxercice

Le but de l'exercice est d'ecrire une fonction is_anagram, dans un fichier is_anagram.py dont le but est de déterminer si deux textes sont des anagrammes.

Et voila le script de tests unitaires: test_is_anagram.py

Qu'est-ce qu'une Anagramme

Une Anagramme "est une construction fondée sur une figure de style qui inverse ou permute les lettres d'un mot ou d'un groupe de mots pour en extraire un sens ou un mot nouveau." (Extrait de Wikipedia)

Exercice de base

Ecrire une fonction is_anagram qui prend deux textes et qui retourne vrai si ceux-ci sont des anagrammes:

>>> is_anagram("titi", "toto")
False
>>> is_anagram("ironique", "onirique")
True
>>> is_anagram("baignade", "badinage")
True
>>> is_anagram("police", "picole")
True

Ne pas oublier de gérer les majuscules comme il faut:

>>> is_anagram("Parisien", "Aspirine")
True
>>> is_anagram("Parisien", "Parisiens")
False

Avant de regarder les bonus, j'aimerai que vous cherchiez au moins deux façons de résoudre cet exercice (ou plus si vous voulez).

Bonus numéro 1

Faire en sorte que les anagrammes de plusieurs mots soient bien détectées (ignorer les espaces):

>>> is_anagram("Tom Elvis Jedusor", "Je suis Voldemort")
True
>>> is_anagram("Laurent Fabius", "Naturel abusif")
True
>>> is_anagram("un deux trois", "trois deux un zero")
False

Bonus numéro 2

Faire en sorte que la fonction ignore la ponctuation:

>>> is_anagram("Jean-Paul Sartre?", "Satan le parjure!")
True
>>> is_anagram("Michel Onfray.", "Lyncher ma foi!!!")
True
>>> is_anagram("Oui?", "Non?")
False

Bonus numéro 3

Petit défi: si vous avez déjà résolut cet exercice, et que vous en voulez encore, alors faites donc en sorte que la fonction accepte les charactères accentués mais ignore les accents:

>>> is_anagram("Centrale nucléaire", "Le cancer et la ruine")
True
>>> is_anagram("Le réchauffement climatique", "Ce fuel qui tache le firmament")
True
>>> is_anagram("Matière à contredire?", "Rédaction téméraire!")
True
>>> is_anagram("Le commandant Cousteau", "Tout commença dans l'eau")
True

Aide

Si vraiment vous êtes bloqué.e.s, vous pouvez regarder ces articles:

Solution

Voir la solution