重叠的最长子串
时间限制:1 秒
内存限制:128 兆
- 题目描述:
-
给定两个字符串,求它们前后重叠的最长子串的长度,比如"abcde"和“cdefg”是"cde",长度为3。
- 输入:
-
输入可能包含多个测试案例。
对于每个测试案例只有一行, 包含两个字符串。字符串长度不超过1000000,仅包含字符'a'-'z'。
- 输出:
-
对应每个测试案例,输出它们前后重叠的最长子串的长度。
- 样例输入:
-
abcde cdefg
- 样例输出:
-
3 扩展kmp
#include
#include #include #define N 1000001using namespace std;char s[N],t[N];int lens,lent,len;int nxt[N],extend[N];void getnxtt(){ int a=0; nxt[0]=lent; while(a =p) { j=(p-k+1>0) ? p-k+1 : 0; while(k+j =p) { j=(p-i+1>0) ? p-i+1 : 0; while(i+j