Recherche de motif

Écrire une fonction recherche_motif qui prend en paramètre une chaîne de caractères motif non vide et une chaîne de caractères texte et qui renvoie la liste des positions de motif dans texte. Si motif n’apparaît pas, la fonction renvoie une liste vide.

Exemples

🐍 Script Python
>>> recherche_motif("ab", "")
[]
>>> recherche_motif("ab", "cdcdcdcd")
[]
>>> recherche_motif("ab", "abracadabra")
[0, 7]
>>> recherche_motif("ab", "abracadabraab")
[0, 7, 11]
Compléter le code ci-dessous

###
# Testsbksl-nlbksl-nlassert recherchepy-undmotif("ab", "") == []bksl-nlassert recherchepy-undmotif("ab", "cdcdcdcd") == []bksl-nlassert recherchepy-undmotif("ab", "abracadabra") == [0, 7]bksl-nlassert recherchepy-undmotif("ab", "abracadabraab") == [0, 7, 11]bksl-nlbksl-nl# Autres testsbksl-nlbksl-nlassert recherchepy-undmotif("ra", "abracadabraab") == [2,9]bksl-nlassert recherchepy-undmotif("za", "zaabracadabraabza") == [0, 15]bksl-nlassert recherchepy-undmotif("za", "zaabracadabraabza") == [0, 15]bksl-nlassert recherchepy-undmotif("cd", "cdcdcdcd") == [0, 2, 4, 6]bksl-nlassert recherchepy-undmotif("cd", "cadcadcadcad") == []bksl-nlbksl-nl 5/5
def recherchepy-undmotif(motif, texte):bksl-nl ...bksl-nlbksl-nl# Testsbksl-nlbksl-nlassert recherchepy-undmotif("ab", "") == []bksl-nlassert recherchepy-undmotif("ab", "cdcdcdcd") == []bksl-nlassert recherchepy-undmotif("ab", "abracadabra") == [0, 7]bksl-nlassert recherchepy-undmotif("ab", "abracadabraab") == [0, 7, 11]bksl-nlbksl-nldef recherchepy-undmotif(motif, texte):bksl-nl solution = []bksl-nl i = 0bksl-nl while i <= len(texte) - len(motif):bksl-nl j = 0bksl-nl while j < len(motif) and motif[j] == texte[j+i]:bksl-nl j = j + 1bksl-nl if j == len(motif):bksl-nl solution.append(i)bksl-nl i = i + 1bksl-nl return solutionbksl-nlbksl-nlbksl-nl