2015-04-03 10 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