#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
char s[500005];
char t[500005];
int nxt[500005];
void getn(char* p,int len)
{
nxt[0]=-1;
int i=0,j=-1;
while(i<len)
{
if(j==-1 || p[i]==p[j])
{
i++;j++;
nxt[i]=j;
}
else
j=nxt[j];
}
}
int main() {
while(~scanf("%s",s))
{
scanf("%s",t);
int len1=strlen(s),len2=strlen(t);
getn(t,len2);
int tp=nxt[len2];
int s1=0,s0=0,t1=0,t0=0,d1=0,d0=0;
for(int i=0;i<len1;i++)
if(s[i]=='1')
s1++;
else
s0++;
for(int i=0;i<len2;i++)
cf1137b kmp
最新推荐文章于 2020-06-06 10:25:08 发布