字符串hash

来源:互联网 发布:淘宝的心怎么算得 编辑:程序博客网 时间:2024/05/19 16:36

字符串hash可以快速判断出两字符串是否相同

要提供一个base(质数)
unsigned long long 来自然溢出
还要存每一位的base

主要代码实现如下

#define Base 233#define ull unsigned long long char A[M];ull p[M],Hash[M];void Hash(n){    p[0]=1;    FOR(i,1,n)p[i]=p[i-1]*Base;    FOR(i,1,n)Hash[i]=Hash[i-1]*Base+(A[i]-'a'+1);}

判断两字符串是否相同

bool check(int i,int m){    return Hash[i]-Hash[i-m]*p[m]==Hash1}
原创粉丝点击