字符串hash的用处

简介

hash(哈希)。
把字符串用一种特定的方式放到一个数组里面。

用处

我目前学的短,只知道两个用处。

1、字符串判重

相信很多人都会。

2、可以快速判断同一个字符串中的两段字符串是否相等

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];
}

证明其实很简单,把式子展开一下就好了。

你可能感兴趣的:(字符串,小记,模板,算法小记)