学习编程很抱歉初学者的问题!在这里,我有一个代码可以在我的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
答案 0 :(得分:0)
是的,这是版本。在Ruby 1.8.7 hash.select
returns an Array中,它没有keys
方法。在以后的版本中,select
会返回一个哈希。