Section anagramme, questions 1,2 et 3
This commit is contained in:
parent
c62ebd6832
commit
bb5783c9e2
|
@ -48,7 +48,7 @@ question(3)
|
||||||
question(4)
|
question(4)
|
||||||
|
|
||||||
|
|
||||||
section('Méthode sort')
|
section('Méthode sort')http://www.fil.univ-lille1.fr/~L1S2API/CoursTP/tp2_dictionnaires.html
|
||||||
|
|
||||||
question(1)
|
question(1)
|
||||||
|
|
||||||
|
@ -64,10 +64,62 @@ partie('Anagrammes') # Jean-loup
|
||||||
|
|
||||||
question(1)
|
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)
|
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)
|
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')
|
section('Casse et accentuation')
|
||||||
|
|
||||||
|
|
Reference in a new issue