码迷,mamicode.com
首页 > 其他好文 > 详细

字符串Hash

时间:2015-04-06 20:18:59      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:




typedef long long ll;
typedef unsigned long long ull;
const int MAGIC = 131;

long long h[N], base[N];
long long MOD = (long long)1e9 + 7;

inline void Hash(char *s) {
	int l = strlen(s);
	h[0] = 1;
	for (int i = 1; i <= l; ++i) h[i] = (h[i - 1] * MAGIC % MOD + s[i - 1] - 'a') % MOD;
	base[0] = 1;
	for (int i = 1; i <= l; ++i) base[i] = (base[i - 1] * MAGIC) % MOD;
}

inline long long get(int l, int r) {
	return (h[r] - h[l - 1] * base[r - l + 1] % MOD + MOD) % MOD;
}





字符串Hash

标签:

原文地址:http://blog.csdn.net/qq574857122/article/details/44905101

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!