计数不带LOPS的单词



我有一个关于Ruby的问题:

给定一个输入字符串,我需要返回一个散列,其键是字符串中的单词,其值是每个单词出现的次数。重要提示:我不能使用for循环。

示例:"今天是日出"输出:{今天=>1,is=>1,a=>2,day=>1,sunrise=>1}

你能帮我吗?

试试这样的东西:

def count_words_without_loops(string)
  res = Hash.new(0)
  string.downcase.scan(/w+/).map{|word| res[word] = string.downcase.scan(/b#{word}b/).size}
  return res
end
h = Hash.new(0)
"Today is a day, a sunrise".scan(/w+/) do |w|
  h[w] += 1
end
p h # {"Today"=>1, "is"=>1, "a"=>2, "day"=>1, "sunrise"=>1}

如果有for循环约束,请使用递归
只是不要忘记有一个停止的条件。

相关内容

  • 没有找到相关文章

最新更新