algorithm-string-string-hash
字符串哈希
多项式字符串哈希
初始化:计算target字符串所有前缀的哈希值和相关项
1234567891011121314151617// 多项式字符串哈希(方便计算子串哈希值)// 哈希函数 hash(s) = s[0] * base^(n-1) + s[1] * base^(n-2) + ... + s[n-2] * base + s[n-1]char[] t = target.toCharArray();final int MOD = 1_070_777_777;final int BASE = (int) 8e8 + new Random().nextInt((int) 1e8); // 随机 base,防止 hackint[] powBase = new int[n + 1]; // powBase[i] = base^iint[] preHash = new int[n + 1]; // 前缀哈希值 preHash[i] = hash(target[0] 到 target[i-1])powBase[0] = 1;for (int i = 0; i < n; i++) ...