标签:详细 min har 扩展kmp int wiki void style div
oiwiki上讲的挺详细的,但是感觉跟国内不太一样?代码好像也更简短?
void pre_ekmp(char s[], int ekmp[], int n) { ekmp[0] = n; //国内是这样用的,oiwiki上好像是定义为0 for (int i = 1, l = 0, r = 0; i < n; ++i) { if (i <= r) ekmp[i] = min(r - i + 1, ekmp[i - l]); while (i + ekmp[i] < n && s[ekmp[i]] == s[ekmp[i] + i]) ++ekmp[i]; if (i + ekmp[i] - 1 > r) l = i, r = i + ekmp[i] - 1; } }
标签:详细 min har 扩展kmp int wiki void style div
原文地址:https://www.cnblogs.com/jionkitten/p/12230631.html