KMP之Z-function (扩展kmp)
2024-10-14 13:35:51
http://codeforces.com/blog/entry/3107
// s[0, ..., n-1], z[0] = 0
// z[i] is the length of the longest substring starting from s[i] which is also a prefix of s
// O(n), R increases...
int L = , R = ;
for (int i = ; i < n; i++) {
if (i > R) {
L = R = i;
while (R < n && s[R-L] == s[R]) R++;
z[i] = R-L; R--;
} else {
int k = i-L;
if (z[k] < R-i+) z[i] = z[k];
else {
L = i;
while (R < n && s[R-L] == s[R]) R++;
z[i] = R-L; R--;
}
}
}
最新文章
- JSBinding / Plugins &; Build Mozjswrap Library
- 【python】numpy array特殊数据统一处理
- Disable SELinux CentOS 7
- 319. Bulb Switcher——本质:迭代观察,然后找规律
- spring 异常管理机制
- POJ 3186Treats for the Cows (区间DP)
- FeatureClass Copy
- 父元素高度为auto,子元素使用top:-50%没有效果的问题
- PHP新手之学习类与对象(1)
- Django 分类标签查找
- 菜鸟玩云计算之十二:KVM虚拟机更改大小
- Nginx HTTP变量原理
- 3ci
- php回话控制 cookie
- Drying [POJ3104] [二分答案]
- app埋点
- 【模板】HDU 1541 树状数组
- [转帖] 外部访问k8s 里面pod的方式方法
- OFbiz--简单介绍
- Tornado中gen.coroutine详解