LetterCountI CoderByte。使用工作代码引发异常

LetterCountI CoderByte. Raises Exception with working code

学习编程,新手问题不好意思!在这里,我有一段代码可以在我的 sublime 文本编辑器中运行,但在 Coderbyte 上引发异常,据我所知,它使用 Ruby 1.8.7。我怀疑这可能与 Ruby 的不同版本有关。将有助于了解出了什么问题。感谢回复!

引发的异常是:

(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

是的,这是版本。在 Ruby 1.8.7 hash.select returns an Array 中,没有 keys 方法。在以后的版本中 select returns 一个 Hash.