String Hashing - 字符串哈希化

String Hashing (字符串哈希化) 简单理解就是将一个字符串转换为一个整数。一般情况下,hash 值会比原始值更易储存 (更小) 或比较。

不要将任意字符对应到数字 0,一般情况下,将 a - z 对应到数字 1 - 26idx(x) = x - 'a' + 1。这是 27 进制的表示。

Here is an example of calculating the hash of a string s, which contains only lowercase letters. We convert each character of s to an integer. Here we use the conversion a->1, b->2, …, z->26. Converting a->0 is not a good idea, because then the hashes of the strings a, aa, aaa, … all evaluate to 0.
这是一个计算字符串 s 的哈希的示例,该字符串仅包含小写字母。我们将 s 的每个字符转换为整数。这里我们使用转换 a->1, b->2, …, z->26。转换 a->0 不是一个好主意,因为字符串 a, aa, aaa, … 的哈希值都等于 0

//======================================================================================================================
// Yongqiang Cheng
//======================================================================================================================#include <iostream>int main() {std::string str("abcdefghijklmnopqrstuvwxyz");std::cout << "The size of str is " << str.length() << " bytes.\n";for (int i = 0; i < str.length(); ++i) {int num = (str[i] - 'a' + 1);std::cout << num << " ";}std::cout << std::endl;std::cout << "Hello, World!" << std::endl;return 0;
}
/home/yongqiang/CLionProjects/hash_table/cmake-build-debug/hash_table
The size of str is 26 bytes.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Hello, World!Process finished with exit code 0

1.

alphabet ['ælfəbet]:n. 字母表

References

http://www.partow.net/programming/hashfunctions/
https://cp-algorithms.com/string/string-hashing.html
http://pages.cs.wisc.edu/~siff/CS367/Notes/hash.html
http://www.cse.yorku.ca/~oz/hash.html
http://cseweb.ucsd.edu/~kube/cls/100/Lectures/lec16/lec16-15.html

String Hashing - 字符串哈希化相关推荐

  1. 快速判断两个字符串是否相等:字符串哈希

    LeetCode 2430. 对字母串可执行的最大删除数 给你一个仅由小写英文字母组成的字符串 s .在一步操作中,你可以: 删除 整个字符串 s ,或者 对于满足 1 < = i < = ...

  2. Hash(哈希(字符串哈希))模板和做题总结(详细易懂)

    文章目录 目录 文章目录 前言: 一 Hash表 1 Hash函数的构造 2 拉链法处理hash冲突模板 3 开放寻址法处理hash冲突 4(例题).雪花雪花 二   字符串Hash O(n)+O(m ...

  3. ML之Hash_HamMingDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用汉明距离算法进行判别

    ML之Hash_HamMingDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用汉明距离算法进行判别 目录 输出结果 代码实现 相关文章 ML之相似度计算: ...

  4. ML之Hash_EditDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用编辑距离算法进行判别

    ML之Hash_EditDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用编辑距离算法进行判别 目录 输出结果 代码实现 相关文章 ML之相似度计算:图像数 ...

  5. 138. 兔子与兔子【字符串哈希】

    很基础的字符串哈希 #include<bits/stdc++.h> using namespace std; typedef unsigned long long int ull; con ...

  6. python映射类型list_python中标准数据类型:数字 string(字符串) list(列表) tuple(元组) dict(字典) sets(集合)共同点和区别:...

    python中string.list.tuple.dict.sets共同点: 1.都是可迭代对象 python中string.list.tuple.sets共同点: 1.都是有序,支持索引 2.支持切 ...

  7. 中石油训练赛 - DNA(字符串哈希)

    题目链接:点击查看 题目大意:给出一串只由A,C,G,T组成的字符串,再给出一个数字k,问每个长度为k的连续子串,出现的次数最多是多少次 题目分析:O(n)哈希一下,O(n)更新一下用无序map维护的 ...

  8. HDU - 3613 Best Reward(字符串哈希)

    题目链接:点击查看 题目大意:给出一个字符串,每个字母都有一个贡献值,现在要将这个字符串拆成两个子串,如果子串是回文串的话,贡献就是其中每个字母的贡献和,现在问贡献最大为多少 题目分析:很简单的一道回 ...

  9. [Leetcode][程序员面试金典][面试题17.13][JAVA][恢复空格][动态规划][Trie][字符串哈希]

    [问题描述][中等] [解答思路] 1. 动态规划 动态规划流程 第 1 步:设计状态 dp[i] 表示字符串的前 i 个字符的最少未匹配数. 第 2 步:状态转移方程 假设当前我们已经考虑完了前 i ...

最新文章

  1. 【POJ】1308 Is It A Tree?((并查集 + set)or (map))
  2. 漫画:卷积神经网络为什么适合处理图片数据?
  3. 分库分表 vs NewSQL数据库
  4. 素数的判断,以及素数的遍历
  5. linux fedora35禁用或启用仓库
  6. 物联网商机迸发 LPWAN芯片现身 本文转自d1net(转载)
  7. 牛客16494 生活大爆炸版石头剪刀布
  8. python自动计算多个教学班的优秀率_第二个月课堂009python之总结(002)
  9. STM8学习笔记---IAR工程中添加文件夹
  10. 原地怠速油耗最大吗?为什么有人说汽车宁可跑起来也不要原地怠速?
  11. 聊天IM的时间戳显示规则
  12. S3VM和TSVM的不同
  13. 供应链金融产品业务全揭秘
  14. 无线测温产品在轧钢厂项目中的应用
  15. 优惠券使用/凑满减优惠/硬币组合问题(结果包括最优组合和最优值)
  16. 线性方程组在计算机方面的应用,在线性方程组的简单应用》(安顺学院数学和计算机科.doc...
  17. 《Unix编程艺术》重读笔记(三)
  18. 在此处打开命令窗口 (Open command window here)
  19. [Nikon D80]月季
  20. 上云安全建设之CDN安全防护

热门文章

  1. 报格志测试培训课程,送《软件测试技术大全》第二版!
  2. 玩转Discord:为什么它这么吸引加密社区?
  3. OpenGL文字渲染
  4. Docker 网络详解
  5. 安装descriptastorus
  6. 解决虚拟机下的ubuntu系统插入U盘后选择连接到虚拟机不显示,没反应的问题
  7. Python Selenium 各浏览器下载到特定文件夹方法总结
  8. 【Python入门】Turtle海龟库:利用海龟画笔绘制简单图形(5)
  9. 基于C++11的Map和Multimap分析
  10. 上市后的第一份财报,藏着满帮的两把双刃剑