LeetCode--2156. 查找给定哈希值的子串
最后更新于
最后更新于
给定整数
p
和m
,一个长度为k
且下标从 0 开始的字符串s
的哈希值按照如下函数计算:
hash(s, p, m) = (val(s[0]) * p0 + val(s[1]) * p1 + ... + val(s[k-1]) * pk-1) mod m
.其中
val(s[i])
表示s[i]
在字母表中的下标,从val('a') = 1
到val('z') = 26
。给你一个字符串
s
和整数power
,modulo
,k
和hashValue
。请你返回s
中 第一个 长度为k
的 子串sub
,满足hash(sub, power, modulo) == hashValue
。测试数据保证一定 存在 至少一个这样的子串。
子串 定义为一个字符串中连续非空字符组成的序列。
通过正序遍历计算,我这里过不了样例,看了 0 神的才知道要倒序计算哈希值,因为计算方式已经给出来了,所以还是比较简单的。