#include <bits/stdc++.h>
using namespace std;
int main(){
string s1,s2,str;
getline(cin,s1);
getline(cin,s2);
int m =s2.size();
str= s2+'#'+s1;
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;
}
萌新,刚开始学,有没有大佬帮我看看,我这个是怎么回事,样例能过,#2我下载了,测试点的输入输出和我的代码运行结果一样,但是显示WA,不太懂是怎么一回事