标签:
hash(哈希)。
把字符串用一种特定的方式放到一个数组里面。
我目前学的短,只知道两个用处。
相信很多人都会。
maxx=10007;
.
.
.
fo(len,1,n)h[len]=h[len-1]*maxx+s[len];//c++可以不用打hash这个十分的爽,因为能自动的弹出一个数(可正可负)
fo(len,1,n)g[i]=g[i-1]*maxx;//辅助数组
判断l到r是否等于l1到r1
bool pan(int l,int r,int l1,int r1){
return h[r]-h[l-1]*g[r-l+1]==h[r1]-g[l1-1]*g[r1-l1+1];
}
证明其实很简单,把式子展开一下就好了。
标签:
原文地址:http://blog.csdn.net/doyouseeman/article/details/51277182