【发布时间】:2014-07-09 10:47:22
【问题描述】:
很多时候,我看到一些代码被标记为“已解决”并获得了 70 多票,但在每种情况下,这都是解决方案的一部分。我对搜索算法有一点问题(比如说)
stringToSearch="aa";
sourceString="aaaaaa"; // len=6
来自网络的大多数解决方案将返回 3 次出现,错误结果是什么原因:
第一次出现 = sourceString[0], sourceString[1]
第二次出现 = sourceString[1], sourceString[2]
第三次出现 = sourceString[2], sourceString[3]
第 4 次出现 = sourceString[3], sourceString[4]
第 5 次出现 = sourceString[4], sourceString[5]
现在事情变得有点复杂......
编辑:问题是如何计算这些出现次数:)
【问题讨论】:
-
不能从最后一个查找点开始重新搜索,直到字符串用完吗?
-
我为此向你投了赞成票 :) 我不知道如何快速计算所有这些事件
-
所以我必须像 sourceString-stringToSearch.Lenght+1 一样多次搜索字符串?
-
你不能一直调用这样的东西直到你到达字符串的末尾吗? i = string.IndexOf("aa", i);
-
Aho-Corasick 字符串搜索算法将找到所有出现的地方。 “如何计数”真的取决于你。你真的在问如何找到它们吗?
标签: c# string algorithm search count