我试图用 Ruby 解决这个 HackerRank 稀疏数组问题。
我想在 string_list 数组上使用 #tally 来创建键的散列及其出现次数。我已经检查过这个工作并正确地打印到我的控制台:
string_list = ['ab', 'ab', 'abc']
string_count = string_list.tally
p string_count: {"ab"=>2, "abc"=>1}
我的代码在本地给了我一个整数数组的预期结果,但是当我将我的代码提交给 HackerRank 时,它似乎在使用 #tally 时抛出一个 NoMethodError。
下面是错误:
Solution.rb:16:in `matchingStrings': undefined method `tally' for ["aba", "baba", "aba", "xzxb"]:Array (NoMethodError)
from Solution.rb:45:in `<main>'
任何人都可以阐明为什么会抛出错误吗?
这是我的完整代码解决方案和终端输出。
def matching_strings(string_list, queries)
string_count = string_list.tally
queries.map do |query|
string_count[query].nil? ? string_count[query] = 0 : string_count[query]
end
end
string_list = ['ab', 'ab', 'abc']
queries = ['ab', 'abc', 'bc']
p matching_strings(string_list, queries) : [2, 1, 0]
谢谢!