【发布时间】:2018-05-08 22:17:50
【问题描述】:
我想出了一个想法,读取一个与输入大小相同的 byte[] 数组,并一一检查。但似乎效率不高。有没有办法通过使用滚动哈希来解决它?
【问题讨论】:
-
我说得对吗,你有一个字节数组 X,你有一个文件,你想检查 X 是否在文件数据中的某个地方?
-
显示一些代码,然后提出一个具体问题
-
您可以在整个文件的大小为字节数组的滑动窗口上计算滚动哈希(Rabin Karp 或其他),并检查哈希是否相同。如果相同,则逐字节比较。由于计算滚动哈希是 O(1),因此您将能够解决 O(file_size) 中的问题。