ComputeKMPNext(p) {m = |p|}begin j ← KMPnext[1] ← 0 for i ← 1 to m do while j > 0 and p[i] ≠ p[j] do j ← KMPnext[j] j ← j + 1 if i = m or p[i + 1] ≠ p[j] then KMPnext[i + 1] ← j else KMPnext[i + 1] ← KMPnext[j] odend| step | i | p[i] | j_start | j_end | branch | kmpnext | action |
|---|