Intersection deux chaînes de caractères
salut,
j'ai l'énoncé suivant:
Enoncé
Nous vous demandons d’écrire une fonction intersection(v, w) qui calcule l’intersection entre deux chaînes de caractères v et w.
On définit l’intersection de deux mots comme étant la plus grande partie commune à ces deux mots. Par exemple, l’intersection de "programme" et "grammaire" est "gramm", et intersection("salut","rien") renvoie le string vide "", puisqu'aucun caractère n'est commun.
Si plusieurs solutions sont possibles, prenez celle qui est d'indices les plus petits dans v (par exemple intersection("bbaacc", "aabb") renvoie "bb".
ce code ne donne pas de résultat valide :
Code:
1 2 3 4 5 6 7
| def intersection(w,v):
res = ""
for i in range(len(w) - 1):
for j in range(len(v) - 1):
if w[i]==v[j]:
res += w[i]
return res |
en fait le test donne
fail Résultat attendu pour intersection('aimer', 'marie') : 'a'
fail Résultat attendu pour intersection('crane', 'carne') : 'ne'
fail Résultat attendu pour intersection('parisien', 'aspirine') : 'ri'
fail Résultat attendu pour intersection('platine', 'plainte') : 'pla'
fail Résultat attendu pour intersection('cuvé', 'vécu') : 'cu'
fail Résultat attendu pour intersection('platine', 'plainte') : 'pla'
fail Résultat attendu pour intersection('programme', 'grammaire') : 'gramm'
ok Bon résultat pour intersection('salut', 'rien') : ''
fail Résultat attendu pour intersection('aabbcc', 'ccaa') : 'aa'
mon code intersection(v, w):
Code:
1 2 3 4 5 6 7 8 9 10
|
def intersection(v, w):
longv = len(v)
comb = 0
for i in range(longv, 0, -1):
for n in range(comb+1):
if v[n:i+n] in w:
return v[n:i+n]
comb += 1
return '' |