Au programme de ce chapitre
- I. Le problème de la recherche d'un motif dans un texte
- II. Cas favorables et cas défavorables
- III. Applications de la recherche textuelle
- Savoir-faire
- Exercices types corrigés
- Teste-toi — vrai ou faux ?
- Pièges fréquents et astuces
- À retenir
La définition à retenir
Un exemple corrigé
python3 :
>>> def recherche_motif(texte, motif):
... n = len(texte)
... m = len(motif)
... occurrences = []
... for i in range(n - m + 1):
... j = 0
... while j < m and texte[i + j] == motif[j]:
... j += 1
... if j == m:
... occurrences.append(i)
... return occurrences
...
>>> texte = "ANANAS_ET_BANANE_AU_CARAMEL"
>>> recherche_motif(texte, "ANA")
[0, 2, 11]
Le motif « ANA » apparaît à l'indice 0 (« ANANAS... »), à l'indice 2 (chevauchement : ...ANANAS..., soit « ANA » commençant au second caractère) et à l'indice 11, dans « BANANE ». La boucle interne while s'arrête dès la première lettre différente, ce qui évite de comparer inutilement toute la fin du motif quand la correspondance échoue tôt.Les erreurs fréquentes à éviter
L'astuce du prof
Exercices corrigés
Cherche d'abord seul, puis ouvre la correction.
Exercice 1
Voir la correction
Exercice 2
