Menu
CoddyTech

回顾:频率计数器

本课属于 Coddy Ruby 学习旅程的“逻辑与流程”单元。第 37 课,共 56 课。

把前几章学过的默认值哈希、迭代和排序结合起来,完成一个经典挑战:生成词频报告。

challenge icon

挑战

中等

读取一行输入,也就是一个句子。创建一个 Hash.new(0),将每个单词(按空白字符拆分并转换为小写)映射到它出现的次数。

然后输出:

  1. 不重复单词的总数
  2. 按频率降序排列每个单词,每个单词占一行(频率相同时按单词的字母顺序排列),格式如下:<word>: <count>

对于输入 the quick brown fox jumps over the lazy dog the dog,输出为:

8
the: 3
dog: 2
brown: 1
fox: 1
jumps: 1
lazy: 1
over: 1
quick: 1

亲手试试

input = gets.chomp

# TODO:用 Hash.new(0) 建立从单词到出现次数的映射,然后输出:
#   1)不同单词的数量
#   2)按出现次数降序排序的条目,次数相同时按单词升序排序

逻辑与流程中的所有课

自己练习: Ruby 在线编译器