【发布时间】:2016-08-17 06:44:17
【问题描述】:
在将哈希值除以素数后,我无法理解滚动哈希算法的工作原理。
考虑数字123456 中的5 位数字序列。
第一个块是12345。我存储值,在下一个窗口中,6 进来,1 出去。
所以新的哈希将是(12345-1*10^4)*10 + 6 = 23456。这是相当直观的。
很明显,这些数字很大,所以我们需要一个模函数来保持它们很小。假设我为此目的将101 作为质数。
所以12345 将减少到23。那么,我将如何从中得出下一个窗口 23456 的滚动哈希?
【问题讨论】:
标签: string algorithm hash rabin-karp