LintCode: Hash Function

简介:

C++

(1)模运算(百度百科

  (a±b)%p = (a%p±b%p)%p

  (a*b)%p = (a%p*b%p)%p

  (a^b)%p = ((a%p)^b)%p

(2)使用long型

(3)magic number 33

(4)循环公式

复制代码
class Solution {
public:
    /**
     * @param key: A String you should hash
     * @param HASH_SIZE: An integer
     * @return an integer
     */
    int hashCode(string key, int HASH_SIZE) {
        // write your code here
        int len = key.length();
        int magic = 1;
        long sum = (int)key[0];
        for (int i = 1; i < len; i++) {
            sum = (sum*33)%HASH_SIZE + (int)key[i];
        }
        return (int)sum%HASH_SIZE;
    }
};
复制代码

 

本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/p/5105576.html,如需转载请自行联系原作者

相关文章
|
数据安全/隐私保护 Python
散列函数(Hash Function)
散列函数(Hash Function)是一种将任意大小的数据映射到固定大小的数据的函数。通常,散列函数将输入数据转换成固定长度的输出,称为散列值(Hash Value),散列值通常是一串数字和字母组成的固定长度的字符串。散列函数可以用于数据加密、数据完整性检查、数据压缩等方面。
141 1
LeetCode 274. H-Index
给定一位研究者论文被引用次数的数组(被引用次数是非负整数)。编写一个方法,计算出研究者的 h 指数。
85 0
LeetCode 274. H-Index
|
算法 索引
LeetCode 275. H-Index II
给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列。编写一个方法,计算出研究者的 h 指数。
88 0
LeetCode 275. H-Index II
|
机器学习/深度学习 人工智能
LeetCode之Find All Numbers Disappeared in an Array
LeetCode之Find All Numbers Disappeared in an Array
97 0
|
人工智能 C++ 索引