!-- Loading 底层遮罩 -->

字符串哈希

字符串哈希表的实现

#define  base  261
#define  mod  23333
string s;
vector < string > linker[ mod  +  2 ];
inline void insert   (    )  {
    int  hash  =  1 ;
    for  (int  i  =  0 ; i  <  s.size( );  i++ )
        hash = ( hash * 1ll * base + s[i] ) % mod;
    for (int  i  =  0; i  <  linker[hash].size( ); i++ )
        if  (linker [hash] [i]  ==  s)
            return;
    linker [hash].push_back( s );
    ans++;
}

 

posted @ 2022-03-30 19:29  Thinker-X  阅读(17)  评论(0)    收藏  举报