字符串哈希

来源:互联网 发布:西安历史气象数据查询 编辑:程序博客网 时间:2024/05/18 01:42
#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#define ull unsigned long longconst ull B=1e8+7;char s[1000],s1[1000];int hash_find(char *a,char *b){ull i,j,k,m,n,al=0,bl=0,x,y,t=1;x=strlen(a);y=strlen(b);if (x>y) return -1;for (i=0;i<x;i++){t*=B;al=al*B+a[i];bl=bl*B+b[i];}for (i=0;i+x<=y;i++){if (al==bl) return i;if (i+x<y) bl=bl*B-b[i]*t+b[i+x];}return -1;}int main(){int i,j,k,m,n;gets(s1);gets(s);printf("%d\n",hash_find(s1,s));return 0;}

0 0
原创粉丝点击