模板
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int N = 1000100;
int n, m, q, nex[N], pre[N], top;
char s[N], t[N];
inline void add (char x) {
int j = top;
while (j && s[nex[j] + 1] != x) j = pre[j];
s[++ top] = x;
j = nex[j] + 1;
if (top == 1) nex[top] = pre[top] = 0;
else if (s[j] == x) {
nex[top] = j;
if (s[nex[j] + 1] == s[j + 1]) pre[top] = pre[j];
else pre[top] = j;
} else nex[top] = pre[top] = 0;
}
int main () {
scanf("%s", t + 1);
n = strlen(t + 1);
for (int i = 1; i <= n; i ++) add(t[i]);
scanf("%d", &q);
while (q --) {
scanf("%s", t + n + 1);
m = strlen(t + n + 1);
top = n;
for (int i = n + 1; i <= n + m; i ++) {
add(t[i]);
printf("%d ", nex[i]);
}
printf("\n");
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探