[algo] recherche d'une chaine commune dans une liste de noms

recherche d'une chaine commune dans une liste de noms [algo] - Algo - Programmation

Marsh Posté le 01-09-2004 à 11:50:36    

Bonjour à tous,
j'ai un tableau de String et je cherche à savoir s'ils commencent tous par une chaine commune et trouver la chaine.
 
Des idées ?

Reply

Marsh Posté le 01-09-2004 à 11:50:36   

Reply

Marsh Posté le 01-09-2004 à 12:13:44    

Ta besoin d'une fonction de comparaison de 2 chaines t'indiquant la position du premier caractère différent.
compare : String x String -> Entier
 
chaine commune = chaine_1[1..min(compare(chaine_i, chaine_j))-1]
 
donc tu peux lire séquentiellement ton tableau et à chaque comparaison tu garde la plus petite valeur entre le minimum courant et le résultat de la comparaison.
 
Complexité :
Soit l la longueur moyenne d'une chaine
compare(chaine1, chaine2) se fait en O(2l) = O(l)
 
Soit n la taille du tableau
chaine_commune(tableau) se fait en O(2l*n) = O(l*n)


Message édité par pains-aux-raisins le 01-09-2004 à 12:34:58
Reply

Marsh Posté le 02-09-2004 à 09:45:06    

Merci du coup de main, je vais essayer ça

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed