【发布时间】:2013-11-15 15:39:41
【问题描述】:
我正在编写直方图,但遇到了问题。我不太确定如何将字母表中的字母放在直方图旁边,如 D: 2 所示。目前它们只是像这样相互打印:
A
B
C
D
0
0
0
2
这是我到目前为止的代码,任何需要添加/重新排列的想法,因为我很困惑!非常感谢!请不要使用宝石
class String
def frequency
letters = Hash.new(0)
self.gsub(/\s+/, ' ').upcase.delete(','+''+' ').each_char {|c| letters[c] += 1 }
letters = letters.sort_by {|x,y| y }
end
def histogram
myhash = Hash.new(0)
#freq = self.frequency;
self.each_char {|i| myhash[i] += 1}
('a'..'z').each { | c , v | puts myhash[c] }
end
end
【问题讨论】:
-
我们无法通过查看您不期望的内容来判断您的期望。而且,图片中的字符太小了,无论如何都无法阅读。
-
如果你能把那个黑匣子做得更小一点,我将不胜感激。这让我头疼。
-
请执行以下操作:(1)删除图片(2)将示例输出添加为文本(3)查看Ruby Style Guide(4)正确缩进代码。
-
它只显示字母 A-Z,下面的数字表示该字母在某些给定文本中出现的次数,我现在会修复这些东西 ^
-
请听从@screenmutt的建议,虽然你已经接受了一个答案(这让我们很多人都在摇头或摇头),因为其他人将来会读到你的问题,你应该向他们表达它正确。这也对您有利;一个聪明的答案所带来的正面印象往往少于一个草率问题的负面印象。
标签: ruby arrays hash histogram