Section Anagrammes d'un mot:seconde méthode
This commit is contained in:
parent
43624f1f4a
commit
338f2f9ea0
|
@ -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 d’un 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')
|
||||
|
||||
|
|
Reference in a new issue