Algorithm 在庞大的列表中查找流行关键字
我有一个巨大的列表,大约有10万行,如下所示:Algorithm 在庞大的列表中查找流行关键字,algorithm,popularity,Algorithm,Popularity,我有一个巨大的列表,大约有10万行,如下所示: ipadnews 阿布西帕德 cddeeffipad 地狱世界 我知道这个 .. 等等 如果想要找到流行的子字符串,那么“ipad”将是最流行的,而“world”将排在第二位。最小长度应为三个或四个字符 我无法预测子字符串,所以使用字典是不行的。这是一个相对复杂的问题。。。但是使用前缀/后缀树是可以处理的。它本质上是一个变化的和问题这就是我要开始的地方 实际上,这个表单上有很多问题-您应该能够使用上面的术语来缩小搜索范围。这是一个相对复杂的问题
- ipadnews
- 阿布西帕德
- cddeeffipad
- 地狱世界
- 我知道这个 .. 等等
我无法预测子字符串,所以使用字典是不行的。这是一个相对复杂的问题。。。但是使用前缀/后缀树是可以处理的。它本质上是一个变化的和问题这就是我要开始的地方
实际上,这个表单上有很多问题-您应该能够使用上面的术语来缩小搜索范围。这是一个相对复杂的问题。。。但是使用前缀/后缀树是可以处理的。它本质上是一个变化的和问题这就是我要开始的地方
这个表单上实际上有很多问题-你应该能够使用上面的术语来缩小搜索范围。你可以使用一个可以在
O(n)
时间内构建的。这实际上是一个游戏。您可以使用内置的O(n)
时间解决此问题。这实际上是一个游戏。我将使用以下逻辑流程来解决这个问题:
哈希表中的最大键数为2*k*n,其中k是单词的平均长度,n是单词的总数。我将使用以下逻辑流来解决此问题:
哈希表中的最大键数为2*k*n,其中k是单词的平均长度,n是单词的总数。子字符串本身不是“关键字”。那么关键字是什么?在列表中找到单词的任何子字符串?听起来确实是这样。。。这真是太复杂了算法怎么知道“world”是一个可以接受的关键字,但现在是“worl”还是“orld”?@Wooble,@Playcat:说得好!应该是子字符串而不是关键字。Thanks@Axn:在匹配常用子字符串之前,您不知道子字符串本身不是“关键字”。那么关键字是什么?在列表中找到单词的任何子字符串?听起来确实是这样。。。这真是太复杂了算法怎么知道“world”是一个可以接受的关键字,但现在是“worl”还是“orld”?@Wooble,@Playcat:说得好!应该是子字符串而不是关键字。Thanks@Axn:在对流行子字符串进行匹配之前,您不会知道这在“iworldthis”中找不到“world”,OP似乎期待着这样的结果。可能需要从后缀集的每个元素中提取前缀集?这在“iworldthis”中找不到“world”,而OP似乎期望这样。可能需要从后缀集的每个元素中提取前缀集?