当用户在Ruby中输入类似单词时,如何计算单词“supercaliforniightight”中出现的字母的频率,并打印出星号或星号以计算出现的字母数量?如何计算用户输入中字母的频率?
这里是我的代码:
puts "Enter string: "
text= gets.chomp
text.downcase!
words = text.split(//)
frequencies = Hash.new(0)
words.each{|item| frequencies[item] +=1}
frequencies = frequencies.sort_by{ |item, amount| amount}
frequencies.reverse!
frequencies.each do |item, amount|
puts item + " " + amount.to_s
end
我想输出是这样的:
Enter a string:
uuuuiiii
u , 4 ****
i , 4 ****
什么是'text'? – sawa 2014-10-20 02:00:51
我花了一段时间才明白你的问题。你首先说,“你如何计算字母的频率......”,然后继续提出这样做的代码。据推测,你的问题只涉及你输出的格式。事实上,你计算频率的方式是无关紧要的。你可能刚刚已经说过,对于''uuuuiii'',你构造了一个散列'h = {'u'=> 4,'i => 3}',并且想知道如何产生特定的输出格式。无论如何,今后请清楚你的问题。 – 2014-10-20 02:39:06