字符串hash

//字符串s长度从1~len
char s[100000];
unsigned long long h[100000];
unsigned long long q[100000];//q[i]表示base的i次方
int base=131;//一般为131,ull自动取模
for (int i = 1; i <= len; i++)
{
	h[i] = h[i - 1] * base + s[i] - 'a' + 1;
	q[i] = q[i - 1] * base;
}
//求[l,r]之间字符串的哈希值
ans=h[r]-h[l-1]*q[r-l+1];
posted on 2021-11-11 11:57  naiji  阅读(41)  评论(0)    收藏  举报