【KMP求字符串匹配次数】 hdu 1686
2017-07-22 21:05
274 查看
Hdu 1686
求模式串出现在目标串的次数
求模式串出现在目标串的次数
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<stack> #include<queue> #include<deque> #include<map> #include<algorithm> using namespace std; typedef long long LL; //#pragma comment(linker, "/STACK:102400000,102400000") /* hdu 1686 KMP简单题 求模式串出现在目标串的次数 */ const double PI = acos(-1.0); const double eps = 1e-6; const int INF=0x3f3f3f3f; const int mod = 1e9+7; const int N=1000010; char s ,p ; int net ; void getnext(int len) { int k = -1; net[0] = -1; for(int i = 1; i < len; i++) { while(k!=-1 && p[k+1]!=p[i]) k = net[k]; if(p[k+1]==p[i]) k++; net[i] = k; } } int main() { int T; scanf("%d",&T); while(T--) { scanf("%s%s",p,s); int lenp = strlen(p); getnext(lenp); int lens = strlen(s); int k = -1; int num = 0; for(int i = 0; i < lens; i++) { while(k!=-1 && p[k+1]!=s[i]) k = net[k]; if(p[k+1]==s[i]) k++; if(k==lenp-1) { k = net[k]; num++; } } printf("%d\n",num); } return 0; }
相关文章推荐
- HDU 1686 Kmp(字符串匹配)
- HDU-2087 剪花布条(KMP不重复字符串匹配次数统计)
- HDU 1686 Oulipo / POJ 3461 Oulipo / SCU 2652 Oulipo (字符串匹配,KMP)
- HDU 1686 Oulipo , 同 POJ 3461 Oulipo (字符串匹配,KMP)
- 【kmp字符串匹配】hdu 1686 Oulipo
- HDU 3746(Cyclic Nacklace)字符串匹配-KMP
- HDU 2087 剪花布条(字符串匹配KMP)
- 【kmp字符串匹配】hdu 2087 剪花布条
- hdu 1686 Oulipo KMP匹配次数统计
- hihocoder#1015 (KMP字符串匹配次数)
- 【KMP字符串匹配】hdu 1711 Number Sequence
- HDU 1711(KMP)字符串匹配
- HDU 1711(KMP)字符串匹配
- HDU 2087___kmp 字符串匹配
- HDU 1686 Oulipo (KMP——统计模式串出现次数)
- HDU 2594(Simpsons’ Hidden Talents)字符串匹配-KMP
- HDU 1686 Oulipo(KMP算法 字符串匹配)
- HDU 1686 (KMP模式串出现的次数) Oulipo
- (KMP 1.2)hdu 1686 Oulipo(计算模式串在文本串中出现的次数)
- POJ 3461 Oulipo (KMP字符串匹配·统计p在s中出现次数)