ハッシュで文字を数えるのにこの問題があります:
#Counting with hashes!
#Experiment by writing a couple of short programs that will use Hashes to count
#objects by incrementing a key value.
#Write a funcition that will count the number of letters in a phrase.
#Example "cat in the hat" -> return: {"t"=>3, "h"=>2, "a"=>2, "i"=>1, "n"=>1, "e"=>1, "c"=>1}
#From descending order. Largest to smallest. Do not include spaces.
これが私の解決策です:
def count_letters(str)
count = Hash.new(0)
str.delete(" ").each_char { |letter| count[letter]+=1}
Hash[count.sort_by {|k,v| v}.reverse]
end
print count_letters("cat in the hat")
降順で並べ替えるには、次のコード スニペットを配置する必要がありました。
Hash[count.sort_by {|k,v| v}.reverse]
これ以上何を屈折させることができますか? 降順ソートを行う別の方法はありますか?
これを行うより良い方法はありますか?