Ruby直方图格式化?

时间:2013-11-15 15:39:41

标签: ruby arrays hash histogram

我正在编写直方图并遇到了问题。我不太确定如何在直方图旁边得到字母表的字母,如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 个答案:

答案 0 :(得分:1)

没有易于复制粘贴的测试代码,我无法在短时间内给出经过验证的答案。也许你可以用测试用例提供更多代码。正如其他人所指出的那样,这将打印直方图,而是一个表格,其中包含从“小a”到“小z”的字母,以及它们在字符串中出现的频率。

几个指针

  • histogram
  • 中重命名print_character_count
  • 像这样迭代a-z('a'..'z')。每个{| c |把“#{c}#{myhash [c]}”}

将导致以下输出:

"notananswer".print_character_count
a 2
b 0
c 0
d 0
e 1
...