Récapitulatif - Compteur de fréquences
Fait partie de la section Logique et Flux du Journey Ruby de Coddy. Leçon 37 sur 56.
Rassemblez les hachages avec des valeurs par défaut, l'itération et le tri des chapitres précédents en un défi classique : un rapport de fréquence de mots.
Défi
MoyenLisez une seule ligne d'entrée, une phrase. Construisez un Hash.new(0) associant chaque mot (séparé par des espaces, mis en minuscules) à sa fréquence.
Ensuite, affichez :
- Le nombre total de mots uniques
- Une ligne par mot par ordre décroissant de fréquence (les égalités sont départagées par ordre alphabétique du mot) dans ce format :
<word>: <count>
Pour l'entrée the quick brown fox jumps over the lazy dog the dog, la sortie est :
8
the: 3
dog: 2
brown: 1
fox: 1
jumps: 1
lazy: 1
over: 1
quick: 1Essayez vous-même
input = gets.chomp
# TODO: construire un Hash.new(0) de mot → nombre, puis afficher :
# 1) le nombre de mots uniques
# 2) les entrées triées par nombre décroissant, les égalités par mot croissant
Toutes les leçons de Logique et Flux
1Les chaînes de caractères en profondeur
Aperçu des méthodes de chaînesInterpolation de chaînesParcourir les chaînesSplit et JoinRécapitulatif - Tisseur de chaînes4Blocs, Procs et Lambdas
Qu'est-ce qu'un bloc ?do..end ou accoladesLe mot-clé yieldParamètres de blocProcs et LambdasRécapitulatif - Itérateur personnalisé7Hashes, 2e partie
Hash.new avec valeurs par défautParcourir les hashesHashes imbriquésFusionner et transformerRécapitulatif - Compteur de fréquences10Projet - Dossiers des étudiants
Présentation du projetAjouter un étudiant2Plages
Qu’est-ce qu’une plage ?Méthodes des plagesPlages dans Case / WhenRécapitulatif - Exercices sur les plages5Puissance des Enumerable
Select et RejectChaînage de MapReduce / Injectcount, all?, any?, none?group_by et partitionsort_by, min_by, max_byRécapitulatif - Pipeline de donnéesEntraînez-vous par vous-même : Compilateur Ruby en ligne