Bonjour à tous,
Voilà je vous explique ma demande, je dois faire un algorithme qui me retourne le nombre d'occurrence de lettres trouvées dans une phrase, mais il faut que toutes les lettres de l'alphabet apparaissent, c-à-d:
Dans la phrase: "Salut les amis!", l'algorithme devra me retourner ceci:
A: 2
B: 0
C: 0
D: 0
E: 1
...
Z: 0
J'ai fait mon algorithme et il fonctionne parfaitement, j'aimerais juste savoir si c'est possible encore de l'améliorer/optimiser, je précise que je ne veux pas utiliser des fonctions supplémentaires qui nécessiterait des importations (using) en plus.
Dans mon code ou plutôt dans ma première boucle "for", je la paramètre à partir de 65 (position ASCII pour la lettre A), cela m'évite de déclarer un tableau de "char" avec la liste de l'alphabet, surtout que je ne veux pas stocker le résultat, juste l'afficher.
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 static void NbreOccurence(string phrase) { phrase = phrase.ToUpper(); int[] alpha = new int[26]; for (int i = 65; i < 91; i++) //La lettre "A" dans le code ASCII commence à la position 65 (+ 26 = 91) { for (int j = 0; j < phrase.Length; j++) { if (char.IsLetter(phrase[j])) { if ((char)i == phrase[j]) alpha[i - 65]++; } } Console.WriteLine("La lettre '" + (char)i + "' apparaît: " + alpha[i - 65] + " fois"); } }
Pourquoi réinventer la roue ???
Merci d'avance pour vos réponses...
Partager