这里会显示出您选择的修订版和当前版本之间的差别。
| 后一修订版 | 前一修订版 | ||
|
2020-2021:teams:farmer_john:2sozx:字符串:kmp [2020/05/22 10:18] 2sozx 创建 |
2020-2021:teams:farmer_john:2sozx:字符串:kmp [2020/05/22 10:26] (当前版本) 2sozx |
||
|---|---|---|---|
| 行 1: | 行 1: | ||
| =====KMP===== | =====KMP===== | ||
| + | ====简介==== | ||
| + | 本质上是 $nxt$ 数组,$nxt[j]=k$ 表示 $j$ 之前的字符串中有最大长度为 $k$ 的相同前缀后缀。 | ||
| + | ====代码==== | ||
| + | <code cpp> | ||
| + | nxt[1]=0; | ||
| + | for(i=2;i<=n;i++){ | ||
| + | while(j&&ch[j+1]!=ch[i]) j=nxt[j]; | ||
| + | if(ch[j+1]==ch[i]) j++; | ||
| + | nxt[i]=j; | ||
| + | } | ||
| + | </code> | ||