Powtórka — licznik częstotliwości
Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 37 z 56.
Połącz hasze z wartościami domyślnymi, iterację i sortowanie z poprzednich rozdziałów w jednym klasycznym wyzwaniu: raporcie częstotliwości występowania słów.
Wyzwanie
ŚredniOdczytaj jeden wiersz danych wejściowych — zdanie. Utwórz mapowanie Hash.new(0), które przypisuje każdemu słowu (podzielonemu według białych znaków i zapisanemu małymi literami) jego częstotliwość.
Następnie wypisz:
- Łączną liczbę unikalnych słów
- Jeden wiersz dla każdego słowa, w kolejności malejącej częstotliwości (remisy rozstrzygaj alfabetycznie według słowa), w formacie:
<word>: <count>
Dla danych wejściowych the quick brown fox jumps over the lazy dog the dog wynik to:
8
the: 3
dog: 2
brown: 1
fox: 1
jumps: 1
lazy: 1
over: 1
quick: 1Spróbuj swoich sił
input = gets.chomp
# TODO: utwórz Hash.new(0) mapujący słowa na ich liczby wystąpień, a następnie wypisz:
# 1) liczbę unikalnych słów
# 2) wpisy posortowane malejąco według liczby wystąpień, a przy remisie rosnąco według słowa
Wszystkie lekcje w sekcji Logika i przepływ programu
1Łańcuchy znaków w szczegółach
Przegląd metod łańcuchów znakówInterpolacja łańcuchów znakówIterowanie po łańcuchach znakówDzielenie i łączeniePowtórka – Tkacz łańcuchów znaków4Bloki, procki i lambdy
Czym jest blok?do..end a nawiasy klamroweSłowo kluczowe yieldParametry blokuProcki i lambdyPodsumowanie — własny iterator7Hashe, część 2
Hash.new z wartościami domyślnymiIterowanie po haszachZagnieżdżone haszeŁączenie i przekształcaniePowtórka — licznik częstotliwości10Projekt – ewidencja uczniów
Przegląd projektuDodawanie ucznia5Potęga Enumerable
Select i RejectŁączenie wywołań mapReduce / Injectcount, all?, any?, none?group_by i partitionsort_by, min_by, max_byPodsumowanie — potok danych8Zaawansowane podejmowanie decyzji
case z klasami i wyrażeniami regularnymiwhen z wieloma wartościamiOperator trójargumentowyInline if / unlessPowtórka – klasyfikator ocenPoćwicz samodzielnie: Kompilator Ruby online