IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Différence entres chaînes de caracteres


Sujet :

Algorithmes et structures de données

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut Différence entres chaînes de caracteres
    J'ai deux chaines de caracteres.
    Comment connaître les ajouts et les choses en moins par rapport aux deux ?

    Par exemple
    mot 1 mot2
    Et

    mot 1 motnouveau mot2
    Voir le fait qu'il y a motnouveau en plus ?

    Merci

  2. #2
    Membre éclairé Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Points : 795
    Points
    795
    Par défaut
    Tu peux créer un tableau dans lequel tu stockes les valeurs, ici c'est des chaînes de caractères, et ensuite tu créer une boucle qui lit les mots les uns après les autres et qui les compare avec les éléments du tableau.

  3. #3
    Membre confirmé Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Points : 649
    Points
    649
    Par défaut
    tu peux decomposer ton probleme en deux etapes.

    1. tu regardes le prefixe commun a tes deux chaines. Pour ca rien de plus simple , tu lis en parallele tes deux chaines, et tu recuperes la suite de chacune des deux chaines de caracteres. dans ton cas tu aurais mot2 et nouveaumot mot2

    2. tu regardes tout ce qu'il y a avant ta premiere chaine de caractere dans ta seconde chaine de caracteres, c'est a dire dans ton exemple, tu recherches tout ce qu'il y a avant mot2 dans nouveaumot mot2. Pour cela, il te suffit de rechercher ta premier chaine de caractere dans ta seconde en stockant la chaine de caractere se trouvant avant.

    J'ai fait une hypothese pour le point deux, celle que ta seconde chaine de caractere est simplement le meme que la premiere dans laquelle ont a insere un mot, si tu veux savoir si en fait la premiere est un sous-mot de la seconde, c'est a dire que tu peut rajouter n'importe quelle caractere entre chaque caratere de la premiere chaine pour obtenir ta seconde. Le principale, c'est que les caracteres de la premiere chaine apparaissent tous dans ta seconde et dans le bon ordre.

  4. #4
    Membre confirmé Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Points : 649
    Points
    649
    Par défaut
    Si en fait ce que tu cherches correspond plutot a la notion de sous-mot, google t'apportera tout ce que tu cherches.

  5. #5
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Recherche "Levenshtein distance" et "edit distance".
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    "Levenshtein distance" et "edit distance". donne une valeur de ressemblance et non les différenteces.

    Je vais changer mes hypothèses de départs.
    Je veux comparer chaque ligne et savoir si une ligne a été modifié, nouveau ou enlevé.

    Donc je décompose mes deux chaines de carateres en tableau où chaque case contient une ligne, et il faut que je les compare. Mais j'avoue que je m'embrouille.

  7. #7
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Regarde les algorithmes employés par l'utilitaire "diff", c'est exactement ce que tu cherches.

    --
    Jedaï

  8. #8
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par Oberown
    "Levenshtein distance" et "edit distance". donne une valeur de ressemblance et non les différenteces.
    Cette distance est définie comme étant le nombre d'éditions élémentaires à faire pour transformer une chaîne en une autre (avec des variantes sur les éditions permises). Il est aisé de modifier l'algorithme pour avoir non seulement le nombre d'édition, mais aussi quelles éditions faire.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

Discussions similaires

  1. Calculer la "différence" entre deux chaînes
    Par mister3957 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 22/08/2011, 22h51
  2. Récupérer différence entre 2 chaînes
    Par orochimaru13 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 23/05/2008, 12h34
  3. Différence entre deux chaînes
    Par gadalla dans le forum Pascal
    Réponses: 3
    Dernier message: 25/02/2008, 14h39
  4. Ma chaîne SQL ne fait pas la différence entre un H et un h
    Par beegees dans le forum Requêtes et SQL.
    Réponses: 19
    Dernier message: 22/03/2006, 15h23
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo