diff --git a/S2/TP2/tp2.py b/S2/TP2/tp2.py index c2fd034..860793e 100644 --- a/S2/TP2/tp2.py +++ b/S2/TP2/tp2.py @@ -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')