哈希处理字符串

来源:互联网 发布:php工作内容 编辑:程序博客网 时间:2024/06/06 17:13
  1. 常用哈希函数,seed=131,初始化阶数组,方便等阶后比较,初始化字符串,比较时只需要看差值。
  2. 逆向初始化字符串,使当前元素在差值中。
#define L 100000int seed = 131;ULL base[L+5];ULL hv[L+5];char str[L+5];int len;void initBase(){    base[0] = 1;    for(int i = 1; i <= L; ++i)        base[i] = base[i-1]*seed;}void initHv(){    len = strlen(str);    hv[len] = 0;    for(int i = len-1; i >= 0; --i)        hv[i] = hv[i+1]*seed + str[i];}ULL getHash(int x, int l){   return hv[x] - hv[x+l]*base[l];}
0 0
原创粉丝点击