还是模拟!!!
#include<algorithm>
#include<cstring>
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int ls,lzs,i,js;
string s,zs;
int main()
{
freopen("censor.in","r",stdin);
freopen("censor.out","w",stdout);
cin>>s>>zs;
ls=s.size();
lzs=zs.size();
while(i<=ls-1)
{
if(s[i]==zs[lzs-1]&&i>=lzs-1)
{
js=i-lzs+1;
for(int j=0;j<=lzs-1;j++) //用for节省一些时间
if(zs[j]==s[js])
js++;
else
{
js=-1;
break;
}
if(js!=-1)
{
s.erase(i-lzs+1,lzs); //删除相同的位置
i-=lzs;
}
}
i++;
}
cout<<s;
return 0;
}