zoukankan      html  css  js  c++  java
  • 字符串哈希

    (水)
    一般来说,我们使用BKDRhash还进行字符串的哈希操作。
    具体地,我们将字符串看成一个大进制数,然后取模就行了。
    code:

    int hash(string s)
    {
        int ans=0,l=s.length();
        for(int i=0;i<l;i++)ans=(ans*base%mod+(s[i]-'0'+1))%mod;
        return ans;
    }
    

    然后就没了。
    当然单哈希人品不好时会出冲突,这个时候就需要使用双哈希,取两个不同的模数。
    其他部分一模一样。
    code:

    int hash1(string s)
    {
        int ans=0,l=s.length();
        for(int i=0;i<l;i++)ans=(ans*base%mod1+(s[i]-'0'+1))%mod1;
        return ans;
    }
    int hash2(string s)
    {
        int ans=0,l=s.length();
        for(int i=0;i<l;i++)ans=(ans*base%mod2+(s[i]-'0'+1))%mod2;
        return ans;
    }
    
  • 相关阅读:
    rjust()方法
    rindex()方法
    rfind()方法
    replace()方法
    min(S)函数
    max(S)函数
    maketrans()方法
    lstrip()方法
    lower()方法
    eclipse Tomcat 启动报错
  • 原文地址:https://www.cnblogs.com/pjykk/p/15002305.html
Copyright © 2011-2022 走看看