Ôn tập: Bộ đếm tần suất
Thuộc phần Logic và luồng xử lý trong hành trình Ruby của Coddy. Bài học 37 trên 56.
Kết hợp từ điển có giá trị mặc định, lần lặp và sắp xếp từ các chương trước trong một thử thách kinh điển: báo cáo tần suất từ.
Thử thách
Trung bìnhĐọc một dòng đầu vào, là một câu. Tạo một ánh xạ Hash.new(0) cho mỗi từ (tách theo khoảng trắng, chuyển thành chữ thường) với tần suất xuất hiện của từ đó.
Sau đó, in ra:
- Tổng số từ duy nhất
- Mỗi từ trên một dòng, theo thứ tự tần suất giảm dần (nếu bằng nhau, sắp xếp theo thứ tự bảng chữ cái của từ), theo định dạng này:
<word>: <count>
Với đầu vào the quick brown fox jumps over the lazy dog the dog, đầu ra là:
8
the: 3
dog: 2
brown: 1
fox: 1
jumps: 1
lazy: 1
over: 1
quick: 1Tự làm thử
input = gets.chomp
# TODO: tạo Hash.new(0) để đếm số lần xuất hiện của từng từ, rồi in ra:
# 1) số từ khác nhau
# 2) các mục được sắp xếp theo count giảm dần; nếu cùng count thì theo word tăng dần
Tất cả bài học trong Logic và luồng xử lý
1Tìm hiểu sâu về chuỗi
Tổng quan về phương thức chuỗiNội suy chuỗiDuyệt qua chuỗiTách và nối chuỗiÔn tập: Đan chuỗi4Khối lệnh, Proc và lambda
Khối lệnh là gì?do..end và dấu ngoặc nhọnTừ khóa yieldTham số của khối lệnhProc và lambdaÔn tập: bộ lặp tùy chỉnh7Hash, phần 2
Hash.new với giá trị mặc địnhLặp qua HashHash lồng nhauGộp và chuyển đổiÔn tập: Bộ đếm tần suất10Dự án: Hồ sơ học sinh
Tổng quan dự ánThêm học sinh2Phạm vi
Phạm vi là gì?Các phương thức của phạm viPhạm vi trong case / whenÔn tập: luyện tập với phạm vi5Sức mạnh của Enumerable
select và rejectNối chuỗi mapreduce / injectcount, all?, any?, none?group_by và partitionsort_by, min_by, max_byÔn tập: quy trình dữ liệuTự luyện tập: Trình biên dịch Ruby online