algorithm - 字符串到唯一整数哈希

标签 algorithm search hash

我正在尝试开发一个系统,可以将我的字符串更改为唯一的整数值,这意味着例如“account”一词的加密数值为 0891,并且没有其他词可以转换为 0891相同的转换过程,它但是需要能够将生成的整数转换回字符串。

同时会依赖于词结构规则,即“accuracy”、“announcement”等词的生成数大于0891,“a”、“abacus”、“abbreviation”等词的生成数"生成的数字将小于 0891。

此应用程序的目的是提供类似于索引或主键的服务。我不使用增量索引的原因是出于安全目的,并且是由于索引依赖于集合中的数据数

(例如)

[0] A, [1] B, [2] C, [3] D, [4] E, [5] F

以上字母都有对应的索引,E的索引为4

但是如果数据突然增加或减少然后排序

[0] A, [1] AA, [2] AAB, [3] C, [4] D, [5] DA, [6] DZ, [7] E, [8] F

E 现在的索引为 7

每个词必须有一个唯一的独立积分等值,并有相应的权重。

我需要知道是否存在可以执行上述操作的算法。

我们将不胜感激。

最佳答案

除非您强加最大长度,否则您所提供的约束是不可能的。

假设k("a")k("b")是这两个字符串的代码。

根据您的限制,您正在寻找一个介于这两个值之间的唯一整数,但是 k("a") < k("a....a") < k("b") .因为有无限数量的样式字符串 "a....a" (和 "akjhdsfkjhs" )需要适合两个代码之间,例如 order preserving 通用的、唯一的、固定长度的代码不能存在于任意长度的字符串中。因为您需要与字符串一样多的整数,并且由于字符串不受长度限制,所以这是行不通的。

删除通用(因此不允许插入新字符串)、唯一(允许冲突 - 例如使用前四个字母作为代码!)、无限长度(例如 3 个字符)或保留顺序属性。

关于algorithm - 字符串到唯一整数哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16521148/

相关文章:

perl - 是否可以在 perl 中使用散列(不是 hashrefs)的散列?

java - 对具有负整数的数字字符串进行排序

c# - SQL 数据库搜索 -> 调用多个存储过程/函数

r - 使用散列对 R Shiny 应用程序的一部分进行简单的密码保护

php - 在 php/mysql 中突出显示搜索结果

php - 确定地理位置是否是搜索字符串的子字符串

hash - Redid 3.0集群数据

algorithm - 从能够容纳一百万行的表中找到未使用的 ID 的最佳算法是什么

algorithm - 如何为寻路算法优化大图?

c# - 基于二维图 block 的 map - 如何在边缘重复 map ?