modify code

master
algorithmzuo 1 year ago
parent 24fbbea88d
commit 6870f23f8b

@ -17,8 +17,8 @@ package class_2023_05_5_week;
// 子串"56"的哈希值 = hash[4] - hash[2]*p的2次方(就是子串"56"的长度次方)
// hash[4] = 3 * p的4次方 + 1 * p的3次方 + 2 * p的2次方 + 5 * p的1次方 + 6 * p的0次方
// hash[2] = 3 * p的2次方 + 1 * p的1次方 + 2 * p的0次方
// hash[2]*p的平方 = 3 * p的4次方 + 1 * p的3次方 + 2 * p的2次方
// 所以hash[4] - hash[2]*p的2次方 = 5 * p的1次方 + 6 * p的0次方
// hash[2] * p的2次方 = 3 * p的4次方 + 1 * p的3次方 + 2 * p的2次方
// 所以hash[4] - hash[2] * p的2次方 = 5 * p的1次方 + 6 * p的0次方
// 这样就得到子串"56"的哈希值了
// 抱歉,课上讲错了。应该是上面的方式。
// 所以子串s[l...r]的哈希值 = hash[r] - hash[l-1] * p的(r-l+1)次方

Loading…
Cancel
Save