我有N个字符串。我希望找到至少2个字符长的所有子串,至少出现2个字符串。
对于以下字符串:
它应该返回(不包括只有一个字符的字符串):
字符串的长度可能很长(1KB-10KB)。我几乎没有内存问题(~2GB) - 我只需要尽快计算这些常见字符串。
提前致谢! 丹尼尔。
答案 0 :(得分:0)
我建议在数据库中制作3个表:
方法是这样的:
如果你有这种结构,你现在可以很容易地计算出词语,它们发生的频率以及它们发生的位置。
如果在索引表上放置索引,则可以非常快速地搜索。
答案 1 :(得分:0)
我发现我最好的选择是在字符串之间进行所有可能的组合(大约n ^ 2种组合),然后在每种组合上运行LCS算法。现在我可以比较所有结果来处理它们。
每次运行LCS算法时,O(n ^ 2 * m ^ 2) - n ^ 2个O(m ^ 2)组合。
我知道这是天真的实现,但它是我能找到的最好的实现。
非常感谢: - )