Forum Clubic

Recherche d'un algo sur 2 chaines de caractères

Bonjour

J’ai cherché en vain un algo sur le net et j’espère que vous pourrez m’aider.

J’ai 2 chaines de caractères.
Je voudrais connaitre la position des lettres qui différes entre les deux.
je voudrais avoir en retour de la fonction un tableau à 2 dimensions avec le début d’une différence et la fin d’une différence.

Par exemple :
chaine 1 : 1+2+3+4+5+6
chaine 2 : 3+4+6

résultat : 0->3, 8->9

0->3 correspondant à 1+2+
8->9 correspondant à 5+

Merci d’avance

Bonjour,
c’est pas évident ton truc, c’est un algo utilisé dans les comparaison de fichiers,ou les comparaison de code.

le problème se pose lorsque tes 2 chaines comportent des éléments qui ne sont pas dans l’autre, il faut associer un caractère avec celui d’en face de façon “intelligente”.
exemple:
chaine1 : ABCDEF
chaine2 : DEFABC

est-ce que c’est de ABC 1à3 qui est inexistant dans chaine2 ou est-ce que c’est DEF qui est inexsitant dans chaine2 après ABC?

autre:
chaine1 : 1a2a3a4a5a6
chaine2 : 5a1a2a3a4a5a6
est-ce que c’est 1a2a3a4a et 6a ce chaine1 qui est inexistant dans chaine2, ou est-ce que c’est uniquement 5a dans chaine2 qui est inexsitant: la réponse est écidente visuellement, mais suivant l’algo, on peut se tromper.

Plutôt qu’un tableau comportant uniquement les position dans le fichier 1, il faudrait peut-être partir sur un tableau comportant les positions des parties communes dans le fichier 1 et fichier2. l’idéal étant de pouvoir ressortir les mêmes informations que fc.

dans ton exemple:
ABCDEF
CDF
fic1 fic2 partie en commun
2,3 0,1 correspondant à CD
5,5 3,3 correspondant à F

et à la fin tu déduit des positions des parties communes les parties différentes.

Maintenant l’algo pour déterminer que 2 parties sont communes doit être symétrique entre les 2 fichiers: tu teste que le début (nombre de car à paramétrer) du fichier1 et semblable au fichier 2, puis l’inverse, et tu prend le résultat le plus avantageux (retournant le plus de caractères communs)

voilà pur mon idée de départ, tu peux aussi chercher au niveau comparaison de fichier/fusion de sources

merci pour ta réponse.

Tu m’as un peu éclairci les idées et je crois que ca va être un peu dur à réaliser!