字符串哈希就是将字符串映射成数,方便操作
处理
for(int i=1;i<=len;i++){
hash[i]=hash[i-1]*k+(s[i]-'A'+1);//转化为k进制数
wei[i]=wei[i-1]*k;//记录数位权值
}
计算区间
区间[l,r]的Hash值
int Get_Hash(int l, int r) {
return hash[r] - hash[l - 1] * pre[r - l + 1]; //pre[i]=k^i
}
拓展
[l,mid-1]+[mid+1,r]的Hash值
int Get_Sum(int l, int r, int k) {
return Get_Hash(l, k - 1) * pre[r - k] + Get_Hash(k + 1, r);
}
本文介绍了字符串哈希的基本概念,重点讲解如何处理字符串并计算特定区间的哈希值,以及如何拓展进行区间合并和分割操作。
2011

被折叠的 条评论
为什么被折叠?



