【发布时间】:2017-01-04 18:28:01
【问题描述】:
我正在寻找一种算法,但我不知道问题的名称,所以我找不到任何东西。希望我对问题的解释是有道理的!
假设您有一长串短语,其中每个短语都是一组单词。用户输入一个单词列表,他们的列表“匹配”一个短语,短语中的每个单词都在他们的列表中找到。列表的“分数”是它匹配的短语数。目标是为用户提供最能提高其列表分数的单词列表。
这是一个简单的例子。我们有十个短语:
- 木屋
- 在树林里露营
- 露营小屋
- 有趣的露营
- 篝火
- 野火
- 游泳洞
- 趣味小屋
- 柴火
- 火场
并且用户提供了这个列表:
- 木头
- 有趣
- 露营
我们匹配短语 1 和 4,因此得分为 2。但如果用户将“小屋”添加到他们的列表中,他们将再匹配 3 个短语并获得 5 分。“火”将在得分上加 2 .
有了简单的简短列表,没有任何复杂的问题,因为您几乎可以立即遍历选项。但随着列表增长到数十万,它开始需要数百毫秒。感觉应该有办法建立索引,让这个过程更快,但我想不出索引的结构会是什么。
任何花时间阅读所有内容的人,谢谢!希望有人知道我在说什么。
【问题讨论】:
-
当列表中只有 3 个元素时,为什么只匹配短语 1 和 4?什么算作“匹配”?
标签: algorithm sorting indexing