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 :

Occurrences des caractères dans une chaîne


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2021
    Messages : 3
    Par défaut Occurrences des caractères dans une chaîne
    Salut
    Svp comment résoudre algorithmiquement le problème suivant :
    Chercher le nombre d'occurrences de chaque caractère dans une chaîne de caractères sans redondance.

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juillet 2020
    Messages : 352
    Par défaut
    Bonjour,
    cela se résout exactement de la même manière algorithmiquement que manuellement 😀
    Comment fais-tu à la main ? Tu me dis si tu fais autrement que :

    1. je prends une feuille de papier vierge et un crayon de papier
    2. je me positionne sur le premier caractère de la chaîne
    3. si le caractère actuel est écrit sur ma feuille alors j'incrémente la valeur écrite à côté
      sinon j'écris ce caractère en notant 1 à côté
    4. tant que je ne suis pas au bout de la chaîne j'avance de caractère et je recommence en 3
    5. et voilà c'est fini


    Prendre une feuille de papier vierge et un crayon de papier consiste à utiliser une structure de données permettant d'associer une clé (le caractère) et une donnée (son nombre d'occurrence). Tu as le choix, le simple tableau (ça fait très C) ou une liste (très lisp) ou un dictionnaire (très python) ou plus complexe (très nerd). En général ces sdd te permettent de savoir si un clé a déjà été aperçue ou non, si ce n'est pas le cas de la créer en lui associant une valeur 1 ou sinon de récupérer la valeur actuelle et de l'incrémenter.
    Quant à parcourir une chaîne c'est un peu trivial …
    Et ensuite ça va dépendre du dialecte que tu emploi pour l'algo et des contraintes que l'on te donne aussi. Ça peut aller du

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    algo occ
    entrée : phrase une chaine de caractère
    sortie : occ un dictionnaire associant un caractère à un nombre
     
    début
        occ ← dictionnaire_vide()
        pour tous les caractères c de phrase faire
            si occ contient c alors
                occ[c] ← occ[c] + 1
            sinon
                occ[c]1
            fin si
        fin pour
        retourner occ
    fin.
    au
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function occ( string S ) : int[]
    begin
        for c in 'a' .. 'z' do
            occ[c]=0
        for i=0 .. length(S) do
            occ[ lowercase(S[i]) ] ++
    end.
    Deux algos, deux dialectes, deux contraintes différentes, … mais un seul problème.

Discussions similaires

  1. [PowerShell] Sélectionner des caractères dans une chaîne de caractères
    Par Brunerboy dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 07/08/2020, 21h20
  2. [Débutant] Remplacer des caractères dans une chaïne; bug !
    Par Mike888 dans le forum C#
    Réponses: 2
    Dernier message: 27/01/2019, 17h42
  3. Compter des caractères dans une chaîne de caracteres
    Par sg025 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 27/12/2016, 13h59
  4. Récupérer des caractères dans une chaîne
    Par LoiL Reborn dans le forum Débuter
    Réponses: 9
    Dernier message: 05/05/2008, 08h46
  5. Réponses: 2
    Dernier message: 24/03/2008, 23h00

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