From 55875d7abfdb2aa96e43d285e5ddb66d5946bada Mon Sep 17 00:00:00 2001 From: Geoffrey Frogeye Date: Mon, 9 Feb 2015 18:46:56 +0100 Subject: [PATCH] TP2 Formalisme partie Anagrammes d'une phrase --- S2/TP2/tp2.py | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/S2/TP2/tp2.py b/S2/TP2/tp2.py index 05a00d1..cd769d8 100644 --- a/S2/TP2/tp2.py +++ b/S2/TP2/tp2.py @@ -443,15 +443,17 @@ partie('Phrases d\'anagrammes') # Geoffrey question(1) +# TODO Texte explicatif du concept d'arbres -def arbre_vers_liste(arbre, precede): +def liste_possibilites(arbre, precede): # dict → list # 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 = [] for i in arbre: 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: possibilites = possibilites + [precede + [i]] return possibilites @@ -459,35 +461,24 @@ def arbre_vers_liste(arbre, precede): def annagrammes_arbre(liste): # 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]) 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) else: 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): # TODO Docstring mots = phrase.split() - anagrammesArbre = annagrammes_arbre(mots) - # print(anagrammesArbre) # DEBUG - # annagrammesMots = [anagrammes(i) for i in mots] - liste = arbre_vers_liste(anagrammesArbre, []) - # print(liste) # DEBUG + arbre = annagrammes_arbre(mots) + liste = liste_possibilites(arbre, []) return [' '.join(i) for i in liste] - -print(annagrammes_phrase('détruirions épargnions')) # DEBUG -# print(arbre_vers_liste({1: None, 3: {5: None}}, [])) # DEBUG +print('>>> annagrammes_phrase(\'Mange ton orange\')') +print(annagrammes_phrase('Mange ton orange')) partie('Sauvegarde et récupération')