70分求调,悬赏一个关注!!!!
查看原帖
70分求调,悬赏一个关注!!!!
727076
hexz01楼主2023/4/3 21:17

第三子任务全部RE,70分代码求调!!

#include <iostream>
#include <string>
using namespace std;
#define N (int(1e6)+7)
string s1, s2;
int nxt[N];
int main(){
    cin>>s1>>s2;
    int n=s1.size(), m=s2.size();
    nxt[0]=0;
    for(int i=1, j=0;i<n;i++){
        while(j>0 && s2[j]!=s2[i]){
            j=nxt[j-1];
        }
        if(s2[j]==s2[i])
            j++;
        nxt[i]=j;
    }
    for(int i=0, j=0;i<n;i++){
        while(j>0 && s1[i]!=s2[j]){
            j=nxt[j-1];
        }
        if(s1[i]==s2[j])
            j++;
        if(j==m)
            cout<<i-m+2<<endl;
    }
    for(int i=0;i<m;i++){
        cout<<nxt[i]<<" ";
    }
    cout<<endl;
    return 0;
}

我把测试点8在本地测了,是正确的。

2023/4/3 21:17
加载中...