c - 需要帮助创建 FindMaxOverlap 函数

标签 c algorithm

我正在尝试创建一个函数,给定两个 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/

相关文章:

c - C中的右左移位

algorithm - 在二叉搜索树中插入 n 个序列的摊销成本是多少?

python - 使用 Python 构建树

c++ - 有没有办法在 C++ 中实现 Python 的 'separator' .join() 的模拟?

python - 使用特定规则在 Python 中生成排列

c++ - malloc_info() 是如何工作的?

c - 错误地将 ASCII 输出为最接近的素数

c - SUN RPC(ONC/RPC): Calculating round trip time (or pinging) using null procedure in C

c++ - c/c++ boost - 编译问题

algorithm - 一种从网页中提取产品数据的通用算法