當用戶在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