#include<iostream> #include<cstdio> #include<cstring> #define maxn 1010 using namespace std; int ans,an[maxn],l1,l2,fail[maxn]; char s1[maxn],s2[maxn]; void kmp_init() { for(int i=2;i<=l2;i++) { int p=fail[p-1]; while(p&&s2[p+1]!=s2[i]) p=fail[p]; if(s2[p+1]==s2[i]) p++; fail[i]=p; } } void kmp_slove() { int p=0; for(int i=1;i<=l1;i++) { while(p&&s2[p+1]!=s1[i]) p=fail[p]; if(s2[p+1]==s1[i]) p++; if(p==l2) { ans++; p=0;//匹配不能重叠 所以长度变为0 重新匹配 } } } int main() { while(1) { scanf("%s",s1+1); if(s1[1]=='#')break; scanf("%s",s2+1); l1=strlen(s1+1); l2=strlen(s2+1); ans=0; memset(fail,0,sizeof(fail)); kmp_init(); kmp_slove(); printf("%d ",ans); } }