下图来自: 6.006-算法简介,
在学习 MIT OCW 提供的 6.006-Introduction to algorithm 课程时,我遇到了 Rabin-Karp 算法。
谁能帮我理解为什么需要第一个 rs()==rt() ?如果使用了,那我们是不是也应该先通过蛮力检查字符串是否相等,然后继续前进?为什么在从 t[0] 进行散列然后尝试查找其他字符串匹配时我们不考虑字符串的相等性?
在图像中,rs() 用于哈希值,rs.skip[arg] 用于删除该字符串的第一个字符,假设它是'arg'</p>