【发布时间】:2013-05-02 09:17:33
【问题描述】:
我有一个字符串列表(大约 18000 个项目),我需要在这个列表中找到相同的子字符串。贝娄是一个例子: 列表示例: “测试1” “测试 2” “东部时间 2” “西1”
我需要这个结果:
“测试” - 2
“est” - 4
“est1” - 2
"est 2" - 2
我需要它使用 linq 来快速搜索(如果可能的话)。 提前致谢
【问题讨论】:
-
LINQ 不一定会使操作快速。无论如何,LINQ 都被编译成适当的 for 循环...
-
如果您显示what you've tried so far,您会发现人们更愿意提供帮助。
-
我认为 all 字符串(如您的示例中)的任何解决方案都可能是 O(N^2) 所以它不会非常快。检查每个单独的字符串将是 O(N)。只是为了确认一下:如果我们将字符串“e”添加到您的示例字符串列表中,那么计数是否为 5? (因为它在“e”、“test”、“est”、“est1”和“est 2”中)
-
您有一个包含大量字符串的列表,并且想要检测(并计算)常见的子字符串?祝你好运......基本上你需要遍历每一个字符串,构建所有可能的子字符串(Dictionary<string, int>中的键并计算每个键的出现。这会变慢。
-
@MatthewWatson,通常你是对的,如果我们在列表中添加 e,我将需要结果 e - 5。在实际情况下,我将忽略长度为 的子字符串