我正在尝试创建一个函数,给定两个 C 字符串,它会返回两个字符串之间连续字符重叠的数量。
例如,
String 1: "Today is monday."
String 2: " is monday."
这里的重叠部分是“is Monday.”,它有 11 个字符(包括空格和“.”)。
最佳答案
如果您需要更高效的东西,请考虑字符串 1 和 2 之间的部分不匹配意味着您可以沿着字符串 1 跳转字符串 2 的其余部分的长度。这意味着您不需要搜索整个字符串 1 .
看看Boyer-Moore algorithm 。虽然它用于字符串搜索,但您可以使用字符串 2 作为模式、字符串 1 作为目标文本来实现此算法来查找最大长度子字符串。
关于c - 需要帮助创建 FindMaxOverlap 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15994360/