我们假设text
是一个字符串并包含一个文本。 tags
是一个字符串数组。给定一个字符串和一个字符串数组,我如何有效地计算字符串中数组的出现?
text = <<-EOS
Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit
esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim id est laborum.
EOS
tags = [ "some", "in", "dolor", "laborum", "missing" ]
该算法应返回至少一次在text
中包含的所有标签。在上面的示例中,
[ "in", "dolor", "laborum" ]
结果数组不需要排序。另外,我实际上并不需要知道text
中每个标签的出现次数。
我带了几个解决方案,但他们都没有真正说服我。任何建议?
谢谢!这或多或少是我想到的相同算法。我的解决方案不是使用'.include?'和'.select',而是利用Arrat'&'交叉运算符来选择标签和文本中的常用元素作为数组。 – 2010-10-09 15:10:43