defrecherche_seq(seq,chaine):"""Renvoie l'indice du premier caractère de chaine où commence `seq` si la séquence `seq` se trouve dans la chaine de caractères chaine, -1 sinon Paramètres: seq : séquence à rechercher chaine : chaine d'ADN Renvoie: indice du premier caractère de seq dans la chaine, -1 sinon. """foriinrange(len(chaine)-len(seq)+1):j=0whilej<len(seq)and...:j+=1if...:returnireturn-1
Correction Q14.
1 2 3 4 5 6 7 8 910111213141516171819
defrecherche_seq(seq,chaine):'''Renvoie l'indice du premier caractère de chaine où commence `seq` si la séquence `seq` se trouve dans la chaine de caractères chaine, -1 sinon Paramètres: seq : séquence à rechercher chaine : chaine d'ADN Renvoie: indice du premier caractère de seq dans la chaine, -1 sinon. '''foriinrange(len(chaine)-len(seq)+1):j=0whilej<len(seq)andchaine[i+j]==seq[j]:j+=1ifj==len(seq):returnireturn-1
Correction Q15
Cet algorithme permet de faire des décalages intelligents si la lettre sur laquelle on est positionné fait partie seq. Cela accélère considérablement la recherche par rapport à l'algorithme recherche_seq.