Section Anagrammes d'un mot:seconde méthode

This commit is contained in:
Jean-Loup Beaussart 2015-02-03 10:46:00 +01:00
parent 43624f1f4a
commit 338f2f9ea0

View file

@ -342,20 +342,57 @@ def anagrammes(mot):
question(2)
print('Les anagrammes de Orange sont:', anagrammes('Orange'))
print('Les anagrammes de Calbuth sont:', anagrammes('Calbuth'))
section('Anagrammes dun mot : seconde méthode')
question(1)
#Il se peut que certains mots du lexique soient des anagrammes d'autres mots du lexique, or on se retrouverait alors avec plusieurs fois la même liste d'anagrammes pour des clés différentes.
question(2)
def cle(mot):
""" str -> str , renvoie la version triée des lettres de mot, sans accent et en bas de casse.
CU: mot est un str
"""
assert(type(mot)==str)
cpy = list(bas_casse_sans_accent(mot)).sort()
return str(cpy)
question(3)
ANAGRAMMES = {cle(i):anagrammes(i) for i in LEXIQUE}
print(len(ANAGRAMMES))
question(4)
def anagrammes2(mot):
""" str -> list de str, utilise le dictionnaire ANAGRAMMES pour trouver la liste des anagrammes de mot
CU: mot est un str
"""
k = cle(mot)
if k in ANAGRAMMES:
return ANAGRAMMES[k]
else:
return []
question(5)
print('Les anagrammes de Orange sont:', anagrammes2('Orange'))
print('Les anagrammes de Calbuth sont:', anagrammes2('Calbuth'))
section('Comparaison des deux méthodes')