#include<bits/stdc++.h>
using namespace std;
int p[1001];
char c1[1001],c2[1001];
int len1,len2;
void pre(){
p[0]=0;
p[1]=0;
for(int i=1;i<len2;i++){
int j=p[i];
while(j>0&&c2[j+1]!=c2[i+1]) j=p[j];
if(c2[j+1]==c2[i+1]) p[i+1]=j+1;
else p[i+1]=0;
}
}
int kmp(){
int j=0;
int c=0;
int last=-1;
for(int i=0;i<len1;i++){
while(j>0&&c2[j]!=c1[i]) j=p[j];
if(c2[j]==c1[i]) j++;
if(j==len2){
if(i-last>=len2){
c++;
last=i;
}
}
}
return c;
}
int main()
{
while(scanf("%s%s",c1,c2)){
if(c1[0]=='#') break;
len1=strlen(c1);
len2=strlen(c2);
pre();
printf("%d\n",kmp());
}
return 0;
}
09-11
439
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)