Implémentation en langage Python
def table_decal(motif):
""" Fonction qui construit une table de décalage (algorithme de Boyer-Moore)
pour un 'motif' donné.
Pré-conditions :
- motif est un argument de type string, non vide
Post-conditions :
- renvoyer une liste de dictionnaires, un élément d'un dictionnaire est
constitué d'une clé (key) qui est une lettre du motif et d'une valeur
qui est son index dans le motif.
Par exemple :
In [1]: table_decal("chercher")
Out[1]:
[{},
{'c': 0},
{'c': 0, 'h': 1},
{'c': 0, 'h': 1, 'e': 2},
{'c': 0, 'h': 1, 'e': 2, 'r': 3},
{'c': 4, 'h': 1, 'e': 2, 'r': 3},
{'c': 4, 'h': 5, 'e': 2, 'r': 3},
{'c': 4, 'h': 5, 'e': 6, 'r': 3}]
"""
table_decalage = []
for i in range (len(motif)):
# ajout d'un dictionnaire vide pour chaque caractère de 'motif'
table_decalage.append({})
for j in range (i):
# [motif[j] : caractère de 'motif' qui sert de clé
table_decalage[i][motif[j]] = j
return table_decalage
Téléchargement d’un fichier : fonction écrite en langage Python
Auto-évaluation
Évaluez votre degré de réussite. Comparez votre réponse avec la proposition ci-dessus.
1 – Indiquez la durée mise pour réaliser le travail demandé :
Moins de 15 minutes
Entre 15 minutes et 30 minutes
Plus de 30 minutes
2 – Indiquez les conditions de réalisation :
Sans aide (documentation, tutoriel, forum…)
Avec aide :
>>> documentation
>>> tutoriel
>>> forum
3 – indiquez votre degré de réussite du travail demandé :
entre 75 et 100 %
entre 50 et 75 %
entre 25 et 50%
moins de 25 %