TP2 Formalisme partie Anagrammes d'une phrase

This commit is contained in:
Geoffrey Frogeye 2015-02-09 18:46:56 +01:00
parent 026d32fe43
commit 55875d7abf

View file

@ -443,15 +443,17 @@ partie('Phrases d\'anagrammes') # Geoffrey
question(1) question(1)
# TODO Texte explicatif du concept d'arbres
def arbre_vers_liste(arbre, precede): def liste_possibilites(arbre, precede):
# dict → list # dict → list
# TODO Docstring # TODO Docstring
# {1: [3, 4], 2: [3, 4]} ⇒ [[1, 3], [1, 4], [2, 3], [2, 4]] # {1: {3: None}, {4: None}, 2: None} ⇒ [[1, 3], [1, 4], 2]
possibilites = [] possibilites = []
for i in arbre: for i in arbre:
if type(arbre[i]) == dict: if type(arbre[i]) == dict:
possibilites = possibilites + arbre_vers_liste(arbre[i], precede + [i]) possibilites = possibilites + \
arbre_vers_liste(arbre[i], precede + [i])
elif arbre[i] == None: elif arbre[i] == None:
possibilites = possibilites + [precede + [i]] possibilites = possibilites + [precede + [i]]
return possibilites return possibilites
@ -459,7 +461,8 @@ def arbre_vers_liste(arbre, precede):
def annagrammes_arbre(liste): def annagrammes_arbre(liste):
# TODO Docstring # TODO Docstring
# [1, 2] ⇒ {1: [1, 3], 2: [2, 4]} # En supposant que (1, 3) et (2, 4) sont anagrammes
# [1, 2] ⇒ {1: {2: None, 4: None}, 3: {2: None, 4: None}}
anagrammesPremier = anagrammes(liste[0]) anagrammesPremier = anagrammes(liste[0])
if len(liste) > 1: # Si il y a des anagrammes après if len(liste) > 1: # Si il y a des anagrammes après
return dict((i, annagrammes_arbre(liste[1:])) for i in anagrammesPremier) return dict((i, annagrammes_arbre(liste[1:])) for i in anagrammesPremier)
@ -467,27 +470,15 @@ def annagrammes_arbre(liste):
return dict((i, None) for i in anagrammesPremier) return dict((i, None) for i in anagrammesPremier)
def developpement(mots):
# [[1, 2], [3, 4]] ⇒ [[1, 3], [1, 4], [2, 3], [2, 4]]
# TODO Docstring
for annagrammes in mots:
for annagramme in annagrammes:
return False
def annagrammes_phrase(phrase): def annagrammes_phrase(phrase):
# TODO Docstring # TODO Docstring
mots = phrase.split() mots = phrase.split()
anagrammesArbre = annagrammes_arbre(mots) arbre = annagrammes_arbre(mots)
# print(anagrammesArbre) # DEBUG liste = liste_possibilites(arbre, [])
# annagrammesMots = [anagrammes(i) for i in mots]
liste = arbre_vers_liste(anagrammesArbre, [])
# print(liste) # DEBUG
return [' '.join(i) for i in liste] return [' '.join(i) for i in liste]
print('>>> annagrammes_phrase(\'Mange ton orange\')')
print(annagrammes_phrase('détruirions épargnions')) # DEBUG print(annagrammes_phrase('Mange ton orange'))
# print(arbre_vers_liste({1: None, 3: {5: None}}, [])) # DEBUG
partie('Sauvegarde et récupération') partie('Sauvegarde et récupération')