1044. 最长重复子串
字符串哈希学习
h[i] = h[i-1] * p + s[i]; p[i] = p[i - 1] * p; hashNum = h[i + len] - h[i] * p[len];
可以用字符串哈希来写
且仅当两个哈希值溢出程度与 Integer.MAX_VALUE 呈不同的倍数关系时,会产生错误结果(哈希冲突),此时考虑修改 或者采用表示范围更大的 long 来代替 int。 int做乘法发生溢出警告,可以 * 1ll 转换成 足够大的long long 来完成乘法操作,然后强行向下转换int long long做乘法发生溢出警告,可以转换成足够大的__int128 来完成乘法操作,然后强行向下转换long long mp.clear();减少哈希冲突
C++ 代码如下
class Solution {
// 且仅当两个哈希值溢出程度与 Integer.MAX_VALUE 呈不同
1044. 最长重复子串最先出现在Python成神之路。
共有 0 条评论