KMP模板

    xiaoxiao2025-07-22  10

    void getNex(){     lenA = strlen(A);     lenB = strlen(B);     nex[0] = -1;     ll i = 0,j = -1;     while(i < lenB){         if(j == -1 || B[i] == B[j]){             ++j,++i;             if(B[i]!=B[j]){                 nex[i] = j;             }             else{                 nex[i] = nex[j];             }         }         else{             j = nex[j];         }     } } void kmpSearch(){     ll i = 0;     ll j = 0;     while(i < lenA){         if(j==-1 || A[i] == B[j]){             ++i,++j;             if(j >= lenB){                 vis[i] = 1;                 j = nex[j];             }         }         else{             j = nex[j];//求多次匹配         }     } }
    转载请注明原文地址: https://ju.6miu.com/read-1300942.html
    最新回复(0)