2013-11-15 2 views
0

Я нахожусь в середине написания гистограммы и столкнулся с проблемой. Я не совсем уверен, как получить буквы алфавита рядом с тем, что будет гистограмма, как в 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 
+0

Мы не можем сказать, что вы ожидаете от глядя на то, что вы не ожидаете. Кроме того, символы на картинке слишком малы для чтения. – sawa

+0

Буду признателен, если вы сделаете этот черный ящик немного меньше. Это дает мне головную боль. –

+1

Пожалуйста, сделайте следующее: (1) Снимите снимок (2) Добавьте образец вывода в виде текста (3) Взгляните на [Руководство по стилю Ruby] (https://github.com/bbatsov/ruby-style-guide) (4) Отметьте свой код правильно. – screenmutt

ответ

1

Witout простой в копирования и вставки тестового кода, я не могу дать проверенный ответ в короткие сроки. Возможно, вы можете предоставить больше кода с помощью тестового теста. Как указывали другие, не напечатайте гистограмму, а таблицу с буквами от «small a» до «small z» и как часто они встречаются в строке.

Несколько указателей

  • переименовывать histogram в print_character_count
  • перебрать-г, как это ('а' .. 'Z'), каждый из {. | c | ставит "# {с} # {myhash [с]}"}

Приведет к следующему выходу:

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

спасибо большое за помощь Феликс! получил его отсортировано сейчас просто не хватало, что # {c} перед myhash: D еще раз спасибо :) – user2058186

+0

Феликс, это не [гистограмма] (http://en.m.wikipedia.org/wiki/Histogram). –

+0

@CarySwoveland его решение помогло мне исправить то, что было не так с моей, которая теперь является рабочей гистограммой :) – user2058186

Смежные вопросы