String Hashing - 字符串哈希化
String Hashing - 字符串哈希化
String Hashing (字符串哈希化) 简单理解就是将一个字符串转换为一个整数。一般情况下,hash 值会比原始值更易储存 (更小) 或比较。
不要将任意字符对应到数字 0
,一般情况下,将 a - z
对应到数字 1 - 26
,idx(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 - 字符串哈希化相关推荐
- 快速判断两个字符串是否相等:字符串哈希
LeetCode 2430. 对字母串可执行的最大删除数 给你一个仅由小写英文字母组成的字符串 s .在一步操作中,你可以: 删除 整个字符串 s ,或者 对于满足 1 < = i < = ...
- Hash(哈希(字符串哈希))模板和做题总结(详细易懂)
文章目录 目录 文章目录 前言: 一 Hash表 1 Hash函数的构造 2 拉链法处理hash冲突模板 3 开放寻址法处理hash冲突 4(例题).雪花雪花 二 字符串Hash O(n)+O(m ...
- ML之Hash_HamMingDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用汉明距离算法进行判别
ML之Hash_HamMingDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用汉明距离算法进行判别 目录 输出结果 代码实现 相关文章 ML之相似度计算: ...
- ML之Hash_EditDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用编辑距离算法进行判别
ML之Hash_EditDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用编辑距离算法进行判别 目录 输出结果 代码实现 相关文章 ML之相似度计算:图像数 ...
- 138. 兔子与兔子【字符串哈希】
很基础的字符串哈希 #include<bits/stdc++.h> using namespace std; typedef unsigned long long int ull; con ...
- python映射类型list_python中标准数据类型:数字 string(字符串) list(列表) tuple(元组) dict(字典) sets(集合)共同点和区别:...
python中string.list.tuple.dict.sets共同点: 1.都是可迭代对象 python中string.list.tuple.sets共同点: 1.都是有序,支持索引 2.支持切 ...
- 中石油训练赛 - DNA(字符串哈希)
题目链接:点击查看 题目大意:给出一串只由A,C,G,T组成的字符串,再给出一个数字k,问每个长度为k的连续子串,出现的次数最多是多少次 题目分析:O(n)哈希一下,O(n)更新一下用无序map维护的 ...
- HDU - 3613 Best Reward(字符串哈希)
题目链接:点击查看 题目大意:给出一个字符串,每个字母都有一个贡献值,现在要将这个字符串拆成两个子串,如果子串是回文串的话,贡献就是其中每个字母的贡献和,现在问贡献最大为多少 题目分析:很简单的一道回 ...
- [Leetcode][程序员面试金典][面试题17.13][JAVA][恢复空格][动态规划][Trie][字符串哈希]
[问题描述][中等] [解答思路] 1. 动态规划 动态规划流程 第 1 步:设计状态 dp[i] 表示字符串的前 i 个字符的最少未匹配数. 第 2 步:状态转移方程 假设当前我们已经考虑完了前 i ...
最新文章
- 【POJ】1308 Is It A Tree?((并查集 + set)or (map))
- 漫画:卷积神经网络为什么适合处理图片数据?
- 分库分表 vs NewSQL数据库
- 素数的判断,以及素数的遍历
- linux fedora35禁用或启用仓库
- 物联网商机迸发 LPWAN芯片现身 本文转自d1net(转载)
- 牛客16494 生活大爆炸版石头剪刀布
- python自动计算多个教学班的优秀率_第二个月课堂009python之总结(002)
- STM8学习笔记---IAR工程中添加文件夹
- 原地怠速油耗最大吗?为什么有人说汽车宁可跑起来也不要原地怠速?
- 聊天IM的时间戳显示规则
- S3VM和TSVM的不同
- 供应链金融产品业务全揭秘
- 无线测温产品在轧钢厂项目中的应用
- 优惠券使用/凑满减优惠/硬币组合问题(结果包括最优组合和最优值)
- 线性方程组在计算机方面的应用,在线性方程组的简单应用》(安顺学院数学和计算机科.doc...
- 《Unix编程艺术》重读笔记(三)
- 在此处打开命令窗口 (Open command window here)
- [Nikon D80]月季
- 上云安全建设之CDN安全防护