蒟蒻0分求助,有疑惑,求大佬解答!
查看原帖
蒟蒻0分求助,有疑惑,求大佬解答!
1061261
lllyyyyyy楼主2024/8/5 16:08
//P3375 【模板】KMP
#include <bits/stdc++.h>
using namespace std;
int main(){
	string s1,s2,str;
	//s1 s2的输入
	getline(cin,s1);
	getline(cin,s2);
	int m =s2.size();
	//s1 s2 拼接
	str= s2+'#'+s1;
	//构建前缀函数pi
	vector<int>pi(str.size(),0);
	for(int i=1;i<(int)str.size();i++){
		int len =pi[i-1];
		while(len!=0&&str[i] != str[len]){
			len=pi[len-1];
		}
		if(str[i] == str[len]){
			pi[i]=len+1;
		//开始判断
			if(pi[i]==m){
				cout<<i-m*2 +1<<endl;
			}
		}
	}
	for(int i=0;i<m;i++){
		cout<<pi[i]<<" ";
	}
	
	return 0;
}
/*
P3375_2.in
CEBDAEEAACEBDAE
EBDAE
P3375_2.out
2
11
0 0 0 0 1 
*/

萌新,刚开始学,有没有大佬帮我看看,我这个是怎么回事,样例能过,#2我下载了,测试点的输入输出和我的代码运行结果一样,但是显示WA,不太懂是怎么一回事

2024/8/5 16:08
加载中...