为什么不对啊。。。求助
查看原帖
为什么不对啊。。。求助
571937
zhouyiran_2011楼主2023/12/24 16:37
//暴力哈希+栈 
#include<bits/stdc++.h>
const int N=1000005, P=131;
using namespace std;
int l, r, sum;
int p[N], h[N];
char s[N], t[N], ans[N];
void init(int size)
{	
	p[0]=1;
	for(int i=1;i<=N;i++)
	{
		p[i]=p[i-1]*P;
	}
	for(int i=1;i<=strlen(t+1);i++)
	{
		sum=sum*P+t[i];
	}
}
int main()
{
	scanf("%s%s", s+1, t+1);
	init(strlen(t+1));
	for(int i=1;i<=strlen(s+1);i++)
	{
		ans[++l]=s[i]; 
		int l1=strlen(t+1);
		h[l]=h[l-1]*P+s[i];
		if(sum==h[l]-h[l-l1]*p[l1])
		{
			l-=l1;
		}
	}
	for(int i=1;i<=l;i++)
	{
		cout<<ans[i];
	}
    return 0;   
}
2023/12/24 16:37
加载中...