形式陈述
Rabin–Karp 为模式
直觉
先用便宜的数字指纹快速排除绝大多数窗口,只对指纹碰巧相同的位置做昂贵的精确比较。
例子与边界
窗口右移时从旧哈希减去最高位贡献、乘基数并加新字符。模运算滚动指纹不是密码哈希,也不需要抗主动碰撞;反之,通用密码哈希通常不支持
推论与应用
Rabin–Karp 适合多模式同长度搜索、重复检测、文档指纹和二维模式匹配。
参考资料
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 4th ed., MIT Press, 2022,Parts I–VI。
- Dan Gusfield, Algorithms on Strings, Trees, and Sequences, Cambridge University Press, 1997,Chs. 1–8。