Rückblick – Häufigkeitszähler
Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy. Lektion 37 von 56.
Führen Sie Hashes mit Standardwerten, Iteration und Sortierung aus den vorherigen Kapiteln in einer klassischen Herausforderung zusammen: einem Wortfrequenzbericht.
Aufgabe
MittelLies eine einzelne Eingabezeile, einen Satz. Erstelle ein Hash.new(0), das jedes Wort (anhand von Leerzeichen getrennt, kleingeschrieben) seiner Häufigkeit zuordnet.
Gib dann Folgendes aus:
- Die Gesamtzahl der eindeutigen Wörter
- Eine Zeile pro Wort in absteigender Häufigkeit (Gleichstände werden alphabetisch nach Wort aufgelöst) in diesem Format:
<word>: <count>
Für die Eingabe the quick brown fox jumps over the lazy dog the dog lautet die Ausgabe:
8
the: 3
dog: 2
brown: 1
fox: 1
jumps: 1
lazy: 1
over: 1
quick: 1Probier es selbst
input = gets.chomp
# TODO: Erstelle ein Hash.new(0) von Wort → Anzahl, dann gib aus:
# 1) die Anzahl der eindeutigen Wörter
# 2) Einträge sortiert nach Anzahl absteigend, bei Gleichstand nach Wort aufsteigend
Alle Lektionen in Logik & Programmfluss
1Strings im Detail
Überblick über String-MethodenString-InterpolationStrings durchlaufenSplitten und VerbindenRückblick – String Weaver4Blocks, Procs & Lambdas
Was ist ein Block?do..end vs. geschweifte KlammernDas Schlüsselwort yieldBlock-ParameterProcs und LambdasRückblick – Benutzerdefinierter Iterator7Hashes Teil 2
Hash.new mit StandardwertenHashes durchlaufenVerschachtelte HashesZusammenführen und TransformierenRückblick – Häufigkeitszähler2Bereiche
Was ist ein Bereich?BereichsmethodenBereiche in Case / WhenWiederholung – Übung zu Bereichen5Das Enumerable-Kraftpaket
Select und RejectMap verkettenReduce / Injectcount, all?, any?, none?group_by und partitionsort_by, min_by, max_byZusammenfassung – Datenpipeline8Fortgeschrittene Entscheidungsfindung
Case mit Klassen & Regexwhen mit mehreren WertenTernärer OperatorInline-if / unlessRückblick – NotenklassifiziererÜbe selbstständig: Online-Ruby-Compiler