hihocoder 1015 KMP

来源:互联网 发布:深圳网络电视台直播 编辑:程序博客网 时间:2024/06/04 05:27
#include <iostream>#include <cstdio>#include <algorithm>#include <string.h>using namespace std;int ans;char ch[1000005];char m[10005];int na[10005];void next(){na[0] = -1;int j = -1;int i = 0;while(m[i]){if(j == -1 || m[i] == m[j]){j++;i++;na[i] = j;}else{j = na[j];}}}int main(){int n;scanf("%d",&n);while(n--){scanf("%s%s",m,ch);int len = strlen(m);next();ans  = 0;int j = 0;for(int i = 0; ch[i];){if(j == -1|| ch[i] == m[j]){i++;j++;if(j == len){ans ++;j = na[j]; }}else{j = na[j];}}printf("%d\n",ans);}return 0;}

0 0