[Code] zfunc C++

void zFunc() {
    int i,r,l;
    z[0]=0;
    l=0;r=0;
    for (i=1;i<n;i++) {
        if (i<=r) z[i]=min(z[i-l],r-i+1); else z[i]=0;
        while (i+z[i]<n && s[i+z[i]]==s[z[i]]) z[i]++;
        if (i+z[i]-1 > r)  {
            l=i;
            r=i+z[i]-1;
        }
    }
}
Đăng bởi Unknown lúc lúc tháng 12 19, 2013 0 bình luận
Tags:

Không có nhận xét nào:

Đăng nhận xét

Copyright © 2018. NguyenQuangVinh.net, Edit by Daotaotinhoc.vn