c*****n 发帖数: 123 | 1 写一个int f(String s)使得int i1 = f(s1); int i2 = f(s2); i1==i2 iff s1==s2
我能想到的是用Trie来做,想请教下大家有没有什么更好些的办法?谢谢!^_^ |
s****a 发帖数: 794 | |
t*****9 发帖数: 569 | 3 不可能啊,int 最大cover2^32,你一个string的排列组合多了去了
总得有点儿限制才行
【在 c*****n 的大作中提到】 : 写一个int f(String s)使得int i1 = f(s1); int i2 = f(s2); i1==i2 iff s1==s2 : 我能想到的是用Trie来做,想请教下大家有没有什么更好些的办法?谢谢!^_^
|
c*****n 发帖数: 123 | 4 怎么做啊?求详解啊
【在 s****a 的大作中提到】 : 256进制数貌似是唯一做法吧
|
c*****n 发帖数: 123 | 5 哦哦 我明白你的意思。补充一下,没有要求每一个string返回唯一的int,就是说同一
个string每次都可以返回不一样的int value,只要保证当i1==i2时候有且仅有s1==s2
即可。所以我是用trie做的。求更好的解法啊,谢谢!
【在 t*****9 的大作中提到】 : 不可能啊,int 最大cover2^32,你一个string的排列组合多了去了 : 总得有点儿限制才行
|
a******n 发帖数: 103 | 6 iff有且仅有不是一一对应吗?
string长度如果有限制的话,可以对每个char映射到int上
如果每个char是8bit,32位可以encode 4个char,如果string长度小于等于4的话可以。
你用trie怎么做啊?
s2
【在 c*****n 的大作中提到】 : 哦哦 我明白你的意思。补充一下,没有要求每一个string返回唯一的int,就是说同一 : 个string每次都可以返回不一样的int value,只要保证当i1==i2时候有且仅有s1==s2 : 即可。所以我是用trie做的。求更好的解法啊,谢谢!
|
c******n 发帖数: 4965 | 7 就是找一个hashcode 么, 要absolutely no collision
【在 c*****n 的大作中提到】 : 写一个int f(String s)使得int i1 = f(s1); int i2 = f(s2); i1==i2 iff s1==s2 : 我能想到的是用Trie来做,想请教下大家有没有什么更好些的办法?谢谢!^_^
|