哪位大佬能告诉我为啥全WA,下载测试数据得到的输出一模一样,不知道为什么
查看原帖
哪位大佬能告诉我为啥全WA,下载测试数据得到的输出一模一样,不知道为什么
692458
z21371173楼主2022/3/28 12:11
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char a[1000006];
char b[1000006];
int next[1000005];
int temp[10000];
void getnext(char a[],int n) { //n--length
	int i=0;
	int k=-1;
	next[0]=-1;
	while(i<n) {
		if(k==-1||a[i]==a[k]) {
			i++;
			k++;
			next[i]=k;
		} else
			k=next[k];//back
	}
}
int main() {
	gets(a);
	gets(b);
	char *p,*r;
	r=a;
	int len1,len2;
	len1=strlen(a);
	len2=strlen(b);
	getnext(b,len2);
	int cnt=0;
	while((p=strstr(r,b))!=NULL) {
		temp[cnt]=p-r+1;
		if(cnt>0)
			temp[cnt]+=temp[cnt-1];
		cnt++;
		r=p+1;
	}
	int i=0;
	while(i<cnt) {
		printf("%d\n",temp[i]);
		i++;
	}
	for(int i=1; i<=len2; i++) {
		printf("%d",next[i]);
		if(i!=len2)
		printf(" ");
	}
}
2022/3/28 12:11
加载中...