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 :

chaine correspondante avec le *


Sujet :

Algorithmes et structures de données

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    786
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 786
    Points : 602
    Points
    602
    Par défaut chaine correspondante avec le *
    Bonjour je cherche à créer un algorithme qui permet de compter le nombre de fois que deux chaine sont identiques.

    La chaine 1 sera par exemple "hello" et la chaine 2 pour elle seule contenir des * (qui correspont à n'importe quelle chaine même vide)
    Donc si str1 = abc et str2 = a**.

    Il y a 3 possibiltés :
    *(1) = bc et *(2) = rien
    ou
    *(2) = bc et *(1) = rien
    ou
    *(1) = b et *(2) = c

    Si vous pouviez m'aider un peu pour démarrer ...

    Merci

  2. #2
    Membre expérimenté Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 887
    Points : 1 531
    Points
    1 531
    Par défaut
    Est-ce que les * sont forcément à la fin ?

    Parce que sinon ça augmente la complexité du problème: par exemple si on a:
    Str1=abbbc
    Str2=a*b*c
    Ca augmente les possibilités. Et dans ce cas ce serait un peu le principe des expressions régulières.

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    786
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 786
    Points : 602
    Points
    602
    Par défaut re
    yop, oui les * sont n'importe ou ... :s

    je n'arrive pas à écrire un algo viable !

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    • Primo tu fais un algo de recherche de sous-chaînes dans une chaîne

    • Secondo, tu explores ta seconde chaîne et tu la découpes en fonction des * trouvées :

      a*toto*

      donnera [a] et [toto]

    • Tertio, tu explores la chaîne 1. Si il n'y a pas de chaîne 2-1 ([a]), c'est fini. Si il y en a, tu regardes jusqu'à l'espace suivant si tu as la chaîne 2-2 ([toto]). Si il n'y en a pas, on passe au "a" suivant l'espace. Sinon on a un résultat..

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    786
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 786
    Points : 602
    Points
    602
    Par défaut re
    Ok je comprend ta réponse jusqu' à
    Tertio, tu explores la chaîne 1. Si il n'y a pas de chaîne 2-1 ([a]), c'est fini...
    La chaine 1 c'est la chaine qui ne contient pas de *.
    Mais après "chaine 2-1 ([a])" ça veut dire quoi ???

    Merci de ta réponse

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    la chaîne 2, celle qui contient les *, j'ai mentionné au dessus que tu l'a découpée en N sous-chaînes, que j'ai appelées chaîne 2-1, 2-2, 2-3, ...

    Exemple :

    chaîne 1 "abc add altitude addition abécédaire"

    • 1er exemple :

      chaîne 2 : "a*"

      chaine 2-1 : "a"
      résultats (5) : "abc" "add" "altitude" "addition" "abécédaire"

    • 2ième exemple :

      chaîne 2 : "a*d*"

      chaîne 2-1 : "a"
      chaine 2-2 : "d"

      Résultats pour chaine2-1 -> on cherche chaine 2-2 -> résultat

      abc -> rien
      add -> "add"
      altitude -> rien
      addition -> "addition"
      abécédaire -> "abécédaire"

    • 3ième exemple :


      chaîne 2 : "a*dd*"

      chaîne 2-1 : "a"
      chaine 2-2 : "dd"

      Résultats pour chaine2-1 -> on cherche chaine 2-2 -> résultat

      abc -> rien
      add -> "add"
      altitude -> rien
      addition -> "addition"
      abécédaire -> rien

    • 4ième exemple :


      chaîne 2 : "a*e"

      chaîne 2-1 : "a"
      chaine 2-2 : "e" (en fin de mot)

      Résultats pour chaine2-1 -> on cherche chaine 2-2 -> résultat

      abc -> rien
      add -> rien
      altitude -> "altitude"
      addition -> rien
      abécédaire -> "abécédaire"

    • 5ième exemple :


      chaîne 2 : "a*é"

      chaîne 2-1 : "a"
      chaine 2-2 : "é" (en fin de mot)

      Résultats pour chaine2-1 -> on cherche chaine 2-2 -> résultat

      abc -> rien
      add -> rien
      altitude -> rien
      addition -> rien
      abécédaire -> rien

    • 6ième exemple :


      chaîne 2 : "a*é*"

      chaîne 2-1 : "a"
      chaine 2-2 : "é"

      Résultats pour chaine2-1 -> on cherche chaine 2-2 -> résultat

      abc -> rien
      add -> rien
      altitude -> rien
      addition -> rien
      abécédaire -> "abécédaire"

Discussions similaires

  1. [Debutant] Afficher des chaines unicodes avec println
    Par MichaelB dans le forum Langage
    Réponses: 2
    Dernier message: 10/01/2007, 19h39
  2. Chaine "coupée" avec les varchar
    Par Atharendil dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/09/2006, 13h30
  3. Réponses: 3
    Dernier message: 03/09/2006, 12h02
  4. executer une chaine char avec asm() [prob]
    Par rogerio dans le forum C++
    Réponses: 14
    Dernier message: 22/06/2006, 18h19
  5. Liste déroulante chainée : problème avec value
    Par jpascal dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/08/2005, 21h06

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