Vous êtes sur la page 1sur 1

USTHB - Faculté d’Informatique – Département IA & SD -2023-2024

Module : BIOALGO – Master1 : BioInformatique

Série TP N°1
Programmation en Python
Algorithmique du texte : préfixe, suffixe, facteur, …

Exercice 1
1. Soit S une chaîne de caractères. Ecrire une procédure SSmot qui affiche tous les sous-mots
de longueur 3 se trouvant dans S ;
2. Ecrire une fonction PluLongPref (chaine S1, chaine S2) qui retourne le plus long préfixe
commun à deux chaînes de caractères données S1 et S2.
Exemple : Pour S1= aababba et S2= aabaaaabbaa la fonction retourne la chaîne aaba.
3. Soit un tableau T de chaines de caractères. Ecrire un programme qui stocke dans un
vecteur Pr tous les mots de T ayant un préfixe commun avec le mot T[0] (i.e le premier
mot du vecteur T). On affiche un mot sur chaque ligne (ou on sépare les mots par une
tabulation)
4. Reprendre les questions 2 et 3, en passant par la construction d’un tableau de tous les
préfixes d’une chaine S. (voir exercice de TD).
NB : définir le type chaine, le type tableau de chaines.
choisir des données de test qui donnent des résultats visibles et intéressants

Exercice 2
Soit un texte T et un mot M (M en général plus court que T).
1. Ecrire une fonction booléenne SousMot qui vérifie si M est un sous-mot de T à partir
d’une position i donnée de T.
2. Ecrire une fonction OccurMot qui retourne un vecteur V contenant le début (indice) de
chaque occurrence de M dans T.
3. Ecrire un programme pour tester la fonction et afficher les positions de début et de fin de
chaque occurrence de M dans le texte T.
Exercice 3
Soit un mot M (M chaine de caractères).
1. Ecrire une fonction Bord qui stocke dans un vecteur B tous les bords du mot M (un bord
est un facteur qui est à la fois préfixe et suffixe)
Exemple : si M = abcabdefeabcab « ab » et « abcab » sont des bords de M
2. Ecrire une fonction Periode qui détermine un tableau de périodes de M (voir la définition
du cours)

Vous aimerez peut-être aussi