kmp字符串匹配模板(c++)
来源:互联网 发布:陈坤 厂花 知乎 编辑:程序博客网 时间:2024/05/29 11:35
kmp模板(c++)
我们不难想到的逐个匹配算法复杂度是
而kmp的复杂度是
#include<cstdio>#include<cstring>#include<algorithm>#define MAXN 100using namespace std;int next[MAXN];void getnext(char *s){ int i=-1,j=0,len=strlen(s); next[0]=-1; while(j<len) if(i==-1||s[i]==s[j]){ i++;j++; next[j]=i; }else i=next[i];}bool kmp(char *s0,char *s1){ int i=0,j=0,len0=strlen(s0),len1=strlen(s1); while(i<len1&&j<len0) if(i==-1||s0[i]==s1[j]) i++,j++; else j=next[j]; return i==len1;}int kmp_len(char *s0,char *s1){ int i=0,j=0,maxlen=0,len0=strlen(s0),len1=strlen(s1); while(i<len1&&j<len0) if(i==-1||s0[i]==s1[j]) maxlen=max(++i,maxlen),j++; else j=next[j]; return maxlen;}int main(){ char s0[MAXN],s1[MAXN]; while(scanf("%s%s",s0,s1)!=EOF){ getnext(s1); puts(kmp(s0,s1)?"YES":"NO"); printf("%d\n",kmp_len(s0,s1)); } return 0;}
0 0
- kmp字符串匹配模板(c++)
- 字符串匹配 KMP(模板)
- 【字符串】KMP匹配模板
- 【模板】KMP字符串匹配
- [模板]-KMP字符串匹配
- poj 3461(kmp字符串匹配模板)
- 【C++】KMP字符串匹配
- 字符串匹配 KMP算法 模板
- [kmp] hdu1711 字符串匹配模板
- 字符串匹配(KMP模板题)
- 数据结构-字符串匹配kmp模板
- P3375 【模板】KMP字符串匹配
- P3375 【模板】KMP字符串匹配
- kmp-洛谷P3375 【模板】KMP字符串匹配
- kmp字符串匹配C实现
- [C++]KMP算法匹配字符串
- 字符串单模板匹配学习笔记(一)kmp算法
- KMP(字符串匹配)
- 计算机图形图像处理 实验一
- Canvas的clip方法的使用
- mysql存储过程和函数
- CNN求学之旅[0]
- 京东2017实习生招聘试题 下列关于抽象类说法错误的是
- kmp字符串匹配模板(c++)
- Android:Service的常驻
- 算法第四版练习题答案
- Windows下php执行exec函数调用python
- MyBatis的一级缓存和二级缓存
- hihocoder#1369 : 网络流算法的一些小结
- 240. Search a 2D Matrix II
- 使用RabbitMQ简单发送接收消息
- memo