【发布时间】:2010-10-05 13:43:03
【问题描述】:
这对我来说很难,我希望人们可以帮助我。我有一些文本,我需要将其传输到一个号码,但它必须是唯一的,就像文本是唯一的一样。
例如: 单词“kitty”可以产生 12432,但只有单词 kitty 产生这个数字。文本可以是任何内容,并且应该给出适当的数字。
有一个问题,结果整数必须是 32 位无符号整数,这意味着可能的最大数字是 2147483647。我不介意是否有文本长度限制,但我希望它可以尽可能大。
我的尝试。您有字母 A-Z 和 0-9,因此一个字符可以有 1-36 之间的数字。但是如果 A = 1 和 B = 2 并且文本是 A(1)B(2) 并且你添加它你会得到 3 的结果,问题是文本 BA 产生相同的结果,所以这个算法不会工作。
有什么想法可以为我指明正确的方向还是不可能做到?
【问题讨论】:
-
所以,你想要一个perfect hash function...
-
@KennyTM - 我也可以拥有一个吗!
-
首先感谢大家的好回复!其次,我想指定文本仅是大写字母,并且有数字,所以 A-Z 和 0-9 总共是 36 个字符。所以你可以有 MARK 或 KRISS,这些应该变成数字。我只希望我能找到一种可以处理大约 12 个字符长的文本的方法,但我想现在 6 似乎是最大值。我还没有查看每一个回复,但我会在足球训练后这样做。
标签: algorithm string numbers formula