Récapitulatif - Compteur de fréquence
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 - String Weaver4Blocs, Procs & Lambdas
Qu'est-ce qu'un bloc ?do..end vs AccoladesLe mot-clé yieldParamètres de blocProcs et LambdasRécapitulatif - Itérateur personnalisé7Hashes - Partie 2
Hash.new avec des valeurs par défautItérer sur les HashesHashes imbriquésFusion et transformationRécapitulatif - Compteur de fréquence10Projet - Dossiers étudiants
Présentation du projetAjouter un étudiant2Intervalles
Qu'est-ce qu'un intervalle ?Méthodes d'intervalleLes intervalles dans Case / WhenRécapitulatif - Pratique des intervalles5La puissance d'Enumerable
Select et RejectChaîner MapReduce / Injectcount, all?, any?, none?group_by et partitionsort_by, min_by, max_byRécapitulatif - Data Pipeline