hdu 1686 KMP
2013-04-26 17:14
357 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1686
这道题目要分清楚第一个是模式串,第二个才是正文。当模式匹配成功时并不停止,直到正文匹配完才停止。
题目大意:每次给出两个字符串,统计第一个串在第二个串中出现的次数。
这道题目要分清楚第一个是模式串,第二个才是正文。当模式匹配成功时并不停止,直到正文匹配完才停止。
题目大意:每次给出两个字符串,统计第一个串在第二个串中出现的次数。
#include<iostream> #include<stdio.h> #include<string.h> #include<stdlib.h> #include<algorithm> using namespace std; char p[10005],s[1000005]; int next[10005]; void getnext() { int len=strlen(p); int i,j; next[0]=-1; for(i=0,j=-1;i<len;){ if(j==-1 || p[i]==p[j]){ i++; j++; next[i]=j; } else j=next[j]; } } int KMP() { int len1=strlen(p); int len2=strlen(s); int i,j,cnt=0; for(i=0,j=0;i<len2;){ if(j==-1 || s[i]==p[j]){ i++; j++; if(j==len1){ //当模式串匹配成功时 cnt++; j=next[j]; } } else j=next[j]; } return cnt; } int main() { int T; scanf("%d",&T); getchar(); while(T--){ gets(p); gets(s); getnext(); printf("%d\n",KMP()); } return 0; }
相关文章推荐
- HDU 1686 Oulipo [KMP]
- HDU 1686 Oulipo——kmp
- Oulipo (poj 3461&&hdu 1686) KMP
- KMP板子题 HDU - 1686
- HDU 1686 Oulipo (kmp)
- hdu 1686 Oulipo(kmp)
- hdu-1686-Oulipo (简单kmp)
- Oulipo (HDU_1686) KMP
- HDU-1686-Oulipo(KMP)
- HDU 1686 - Oulipo(kmp)
- HDU-1686-Oulipo KMP
- KMP板子题 HDU - 1686
- HDU - 1686 KMP裸题
- hdu 1686 KMP
- hdu 1686 Oulipo -- (KMP模板题)
- hdu1686--kmp入门题
- HDU 1686 Kmp(字符串匹配)
- HDU 1686 Oulipo(KMP)
- HDU-1686 KMP
- 【kmp字符串匹配】hdu 1686 Oulipo