Correction de l'épreuve 31
Sujet (PDF intégré)
Exercice 1
def recherche_motif(motif, texte):
sol = []
i = 0
while i <= len(texte) - len(motif):
j = 0
while j < len(motif) and motif[j] == texte[j+i]:
j += 1
if j == len(motif):
sol.append(i)
i += 1
return sol
Ou
def recherche_motif(motif, texte):
i = 0
n = len(motif)
positions = []
while i <= len(texte) - n:
if texte[i:i+n] == motif:
positions += [i]
i += 1
return positions
Exercice 2
adj = [[1, 2], [0, 3], [0], [1], [5], [4]]
def parcours(adj, x, acc):
'''Réalise un parcours en profondeur récursif
du graphe donné par les listes d'adjacence adj
depuis le sommet x en accumulant les sommets
rencontrés dans acc'''
if x not in acc:
acc.append(x)
for y in adj[x]:
parcours(adj, y, acc)
def accessibles(adj, x):
'''Renvoie la liste des sommets accessibles dans le
graphe donné par les listes d'adjacence adj depuis
le sommet x.'''
acc = []
parcours(adj, x, acc)
return acc
Pour le 1 la version sans append est beaucoup mieux non ?
Précédent | Suivant