Menu

String [Résolu]

Messages postés
3
Date d'inscription
lundi 11 juin 2018
Dernière intervention
13 juin 2018
- 11 juin 2018 à 12:30 - Dernière réponse :
Messages postés
3
Date d'inscription
lundi 11 juin 2018
Dernière intervention
13 juin 2018
- 13 juin 2018 à 15:23
Bonjour,
voici la question qui m'a été posée:

Ecrivez la méthode char plusFrequent(String s) qui permet de déterminer le caractère le plus présent dans la chaine de caractères s.

A titre d'exemple, le caractère le plus fréquent de la chaîne abbDDaa est a. Si la chaîne contient des caractères avec le même nombre d'occurences maximal, renvoyez le premier trouvé de gauche à droite.

je n'ai aucun soucis a identifier le caractère le plus frequent sauf quand il y en a plusieurs, je n'arrive pas à retourner le premier rencontré. pourriez vous m'aider? merci
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
15824
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
15 novembre 2018
- 11 juin 2018 à 13:01
1
Merci
Bonjour,

Il faudrait voir ton code, selon comment tu as fait c'est peut-être pas grand chose...

Merci KX 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 28025 internautes ce mois-ci

Messages postés
3
Date d'inscription
lundi 11 juin 2018
Dernière intervention
13 juin 2018
- 11 juin 2018 à 14:16
en fait je n'ai juste pas reussi à coder la partie permettant de retourner le premier trouvé mais voici mon code
Messages postés
15824
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
15 novembre 2018
>
Messages postés
3
Date d'inscription
lundi 11 juin 2018
Dernière intervention
13 juin 2018
- 11 juin 2018 à 17:51
L'impression écran ce n'est pas vraiment très pratique, un copier-coller ça aurait été mieux, parce que je ne vais pas m'amuser à tout réécrire pour tester ton code.

De tête, je pense que tu devrais remplacer tes lignes 13 et 14 par ceci :

if (count > max) {
    max = count;

Comme ceci, tu ne rentres dans le if que lorsque c'est la première fois que tu obtiens cette valeur du max, alors qu'avant tu rentrais dans le if à chaque fois qu'il y avait égalité avec le max existant, donc c'était la dernière lettre la plus fréquente qui était récupérée au lieu de la première.

Remarque : je pense que tu peux améliorer les performances de ton code, tout en conservant le même résultat, en initialisant ta deuxième boucle avec un
for (int j = i;
Messages postés
3
Date d'inscription
lundi 11 juin 2018
Dernière intervention
13 juin 2018
- 13 juin 2018 à 15:23
Un tout grand merci KX, en essayant ce que tu m'as dis je tombe sur la bonne réponse.
merci beaucoup.
Commenter la réponse de KX