Ripasso - Contatore di frequenza
Fa parte della sezione Logica e flusso del percorso Ruby di Coddy. Lezione 37 di 56.
Metti insieme gli hash con valori predefiniti, l’iterazione e l’ordinamento dei capitoli precedenti in una classica sfida: un rapporto sulla frequenza delle parole.
Sfida
MedioLeggi una singola riga di input, una frase. Crea una mappatura Hash.new(0) che associa ogni parola (separata in base agli spazi bianchi e convertita in minuscolo) alla sua frequenza.
Quindi stampa:
- Il numero totale di parole uniche
- Una riga per ogni parola, in ordine di frequenza decrescente (a parità di frequenza, in ordine alfabetico per parola), in questo formato:
<word>: <count>
Per l'input the quick brown fox jumps over the lazy dog the dog, l'output è:
8
the: 3
dog: 2
brown: 1
fox: 1
jumps: 1
lazy: 1
over: 1
quick: 1Provalo tu
input = gets.chomp
# TODO: crea un Hash.new(0) che associ ogni parola al suo conteggio, poi stampa:
# 1) il numero di parole uniche
# 2) le voci ordinate per conteggio desc e, a parità di conteggio, per parola asc
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Panoramica dei metodi delle stringheInterpolazione di stringheIterare sulle stringheDividere e unireRiepilogo - Tessitore di stringhe4Blocchi, Proc e Lambda
Che cos’è un Block?do..end vs parentesi graffeLa keyword yieldParametri del BlockProc e LambdaRiepilogo - Iteratore personalizzato7Hash in Ruby - Parte 2
Hash.new con valori predefinitiIterare sugli hashHash annidatiUnire e trasformareRipasso - Contatore di frequenza10Progetto - Registri degli studenti
Panoramica del progettoAggiungere uno studente2Intervalli
Che cos'è un intervallo?Metodi degli intervalliIntervalli in Case / WhenRiepilogo - Esercitarsi con gli intervalli5La potenza di Enumerable
Select e RejectConcatenare MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRiepilogo - Pipeline di datiEsercitati da solo: Compilatore Ruby online