回覆列表
  • 1 # 使用者3132823076892

    #include

    using namespace std;

    void Next(char T[],int next[])

    { next[0]=-1;

    int j=0,k=-1;

    while(T[j]!="\0")

    if((k==-1)||(T[j]==T[k]))

    { j++;

    k++;

    next[j]=k;

    }

    else k=next[k];

    }

    int KMP(char S[],char T[])

    { int i=0,j=0;

    int next[10];

    Next(T,next);

    while((S[i]!="\0")&&(T[j]!="\0"))

    { if(S[i]==T[j]) {i++;j++;}

    else j=next[j];

    if(j==-1)

    { i++;j++; }

    }

    if(T[j]=="\0") return(i-j+1);

    else return 0;

    }

    int main()

    { char a[100],b[100];

    cout

    cin.getline(a,100);

    cout

    cin.getline(b,100);

    if(KMP(a,b)==0)

    cout

    else cout

    return 0;

    }

    具體的你自己看吧。

  • 中秋節和大豐收的關聯?
  • 《刺激戰場》近戰最好用的4把槍,AKM不是最強,第一名你想不到,對此你怎麼看?