From bb5783c9e2afbb5f81b6ee75e968f05728573305 Mon Sep 17 00:00:00 2001 From: jeanloup Date: Tue, 27 Jan 2015 11:02:24 +0100 Subject: [PATCH] Section anagramme, questions 1,2 et 3 --- S2/TP2/tp2.py | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/S2/TP2/tp2.py b/S2/TP2/tp2.py index c126614..3a5fa20 100644 --- a/S2/TP2/tp2.py +++ b/S2/TP2/tp2.py @@ -48,7 +48,7 @@ question(3) question(4) -section('Méthode sort') +section('Méthode sort')http://www.fil.univ-lille1.fr/~L1S2API/CoursTP/tp2_dictionnaires.html question(1) @@ -64,10 +64,62 @@ partie('Anagrammes') # Jean-loup question(1) +def sont_anagrammes1(chaine1, chaine2): + """ Prédicat, renvoie True si chaine1 et chaine2 sont des anagrammes, False sinon + str, str -> bool + CU: chaine1 et chaine2 sont des str + """ + + assert(type(chaine1)==str and type(chaine2)==str) + + if len(chaine1) != len(chaine2): # Si la longueur est différente ca ne peut pas être des anagrammes + return False + + l1 = list(chaine1) + l2 = list(chaine2) + + l1.sort() + l2.sort() + + return l1 == l2 + question(2) +def sont_anagrammes2(chaine1, chaine2): + """ Prédicat, renvoie True si chaine1 et chaine2 sont des anagrammes, False sinon + str, str -> bool + CU: chaine1 et chaine2 sont des str + """ + + assert(type(chaine1)==str and type(chaine2)==str) + + if len(chaine1) != len(chaine2): # Si la longueur est différente ca ne peut pas être des anagrammes + return False + + occu1 = dict((i,chaine1.count(i)) for i in chaine1) + occu2 = dict((i,chaine2.count(i)) for i in chaine2) + + return occu1 == occu2 + question(3) +def sont_anagrammes2(chaine1, chaine2): + """ Prédicat, renvoie True si chaine1 et chaine2 sont des anagrammes, False sinon + str, str -> bool + CU: chaine1 et chaine2 sont des str + """ + + assert(type(chaine1)==str and type(chaine2)==str) + + if len(chaine1) != len(chaine2): # Si la longueur est différente ca ne peut pas être des anagrammes + return False + + for i in chaine1: + if chaine1.count(i) != chaine2.count(i): + return False + + return True + section('Casse et accentuation')