标签:
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn=1e6+5; int next[maxn],slen,tlen; char s[maxn],t[maxn]; int kmp() { int ans=0; for(int i=2,j=next[1]=0;i<=tlen;++i) { while(j&&t[i]!=t[j+1])j=next[j]; next[i]=j+=t[i]==t[j+1]; } for(int i=1,j=0;i<=slen;i++) { while(j&&s[i]!=t[j+1])j=next[j]; j+=s[i]==t[j+1]; if(j==tlen)j=next[j],ans++; } return ans; } int main() { int T; scanf("%d",&T); while(T--) { scanf("%s%s",t+1,s+1); slen=strlen(s+1); tlen=strlen(t+1); printf("%d\n",kmp()); } return 0; }
标签:
原文地址:http://www.cnblogs.com/a972290869/p/4175031.html