2015-04-03 24 views
1

学习编程,以便对初学者的问题感到抱歉!在这里我有一个代码可以在我的sublime文本编辑器中工作,但是在Coderbyte上引发了一个异常,我知道它使用Ruby 1.8.7。我怀疑它可能与不同版本的Ruby有关。有助于理解发生了什么问题。感谢回复!LetterCountI CoderByte。引发异常与工作代码

异常升高是:

(eval):9: undefined method `keys' for []:Array (NoMethodError) from (eval):4:in `each' from (eval):4:in `LetterCountI' from (eval):23 

def LetterCountI(str) 

    str = str.split 
    repeating_letters = [] 
    str.each do |word| 
    word = word.split("") 
    letters = Hash.new(0) 
    word.each { |letter| letters[letter] += 1 } 
    selected_letters = letters.select { |key, value| value > 1 } 
    repeating_letters << selected_letters.keys.length 
    end 
    if (repeating_letters.select {|l| l >= 1}).empty? 
    return -1 
    else 
    max = repeating_letters.max 
    p repeating_letters 
    return str[repeating_letters.index(max)] 
    end 
end 

回答

0

是的,它的版本。在Ruby 1.8.7中hash.selectreturns an Array,其中没有keys方法。在以后的版本中,select返回一个散列。

+0

感谢您的快速回复! – 2015-04-03 18:00:57