【发布时间】:2015-02-23 19:37:20
【问题描述】:
我正在尝试从 Ruby Monk 网站解决这个练习,该网站说:
尝试实现一个名为
occurrences的方法,它接受一个字符串 参数并使用inject来构建哈希。这个散列的键应该 是该字符串中的唯一单词。这些键的值应该是 该单词在该字符串中出现的次数。
我试过这样做:
def occurrences(str)
str.split.inject(Hash.new(0)) { |a, i| a[i] += 1 }
end
但我总是得到这个错误:
TypeError: no implicit conversion of String into Integer
同时,这个解决方案是完全一样的(我认为):
def occurrences(str)
str.scan(/\w+/).inject(Hash.new(0)) do |build, word|
build[word.downcase] +=1
build
end
end
【问题讨论】:
标签: ruby string algorithm split hashmap