串位置定位函数分析: KMP算法
普通算法:
i = pos; j = 1;
i = i - j + 2; // 分析:i 减去 j从初值开始后的增量,然后i再加1,即是从 i(相对于初值pos)的下一个位置重新开始子串的匹配。
KMP算法:
1. next[j] 函数分析:
" p1 p2 ... pk' " != " p(j-k+1) ... pj " // 模式的前 k' 项,与 从第j个字符开始向前查 k‘ 个字符串 是有可能相同的;
2. k = next[j] 函数分析编码;
普通算法:
i = pos; j = 1;
i = i - j + 2; // 分析:i 减去 j从初值开始后的增量,然后i再加1,即是从 i(相对于初值pos)的下一个位置重新开始子串的匹配。
KMP算法:
1. next[j] 函数分析:
" p1 p2 ... pk' " != " p(j-k+1) ... pj " // 模式的前 k' 项,与 从第j个字符开始向前查 k‘ 个字符串 是有可能相同的;
2. k = next[j] 函数分析编码;