博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
censoring--kmp匹配删减子字符串
阅读量:4566 次
发布时间:2019-06-08

本文共 846 字,大约阅读时间需要 2 分钟。

#include 
using namespace std;const int maxn = 1e6 + 10;char a[maxn], b[maxn], st[maxn];int nex[maxn], p[maxn]; void getNext() { int len = strlen(b), i = 0, j = -1; nex[0] = -1; for (int i = 1; i < len; i++) { while (j != -1 && b[i] != b[j + 1]) j = nex[j]; if (b[i] == b[j + 1]) j++; nex[i] = j; }} void KMP() { int n = strlen(a), m = strlen(b); getNext(); int top = 0; for (int i = 0; i < n; i++) { int j = p[top]; st[++top] = a[i]; while (j != -1 && b[j + 1] != st[top]) j = nex[j]; if (b[j + 1] == st[top]) j++; p[top] = j; if (p[top] + 1 == m) top -= m; } st[top + 1] = 0; puts(st + 1);} int main() { scanf("%s%s", a, b); KMP(); return 0;}

转载于:https://www.cnblogs.com/Emcikem/p/11352898.html

你可能感兴趣的文章
我们的故事墙--一切为了可视化
查看>>
进程与线程的区别?-转
查看>>
php array_walk
查看>>
yolo train:CUDA Error: an illegal memory access was encountered darknet: cuda.c:36:check_error
查看>>
java中作用域public private protected 以及不写的区别
查看>>
Ubuntu 安装java 1.8
查看>>
ASP.Net本地化/国际化解决方案原理和代码示例
查看>>
winform无法查看设计器
查看>>
[Json] 1 - 数据格式(转)
查看>>
bootstrap 模态框
查看>>
正则表达式匹配一个或多个汉字
查看>>
iOS基础项目之----图片控制器(控制图片的平移与缩放)
查看>>
Myeclipse去掉对JS等文件的验证
查看>>
struts标签bean:define
查看>>
iOS7相机隐私判断
查看>>
浅谈软件工程的管理活动
查看>>
《设计模式》杂记之里氏替换原则
查看>>
SpringMVC 中实体类父子类关系设置
查看>>
LINQ 简介
查看>>
[Bug FIX]安装 account_check_writing模块后采购收据打印报错的问题
查看>>