Mic*_*Sim 1 sorting string mapping algorithm function
我正在寻找能够将字符串映射到数字的算法或函数,使得结果值对应于字符串的字典顺序.例:
"book" -> 50000
"car" -> 60000
"card" -> 65000
"a longer string" -> 15000
"another long string" -> 15500
"awesome" -> 16000
Run Code Online (Sandbox Code Playgroud)
作为函数,它应该类似于:f(x)= y,因此对于任何x1 <x2 => f(x1)<f(x2),其中x是任意字符串,y是数字.
如果x的输入集是有限的,那么我总是可以进行排序并分配正确的值,但我正在为x的无限输入集寻找通用的东西.
jas*_*son 18
如果你需要f
映射到整数,这是不可能的.
假设有这样的地图f
.考虑串a
,aa
,aaa
,等考虑价值观f(a)
,f(aa)
,f(aaa)
,等.我们要求f(a) < f(aa) < f(aaa) < ...
我们看到,f(a_n)
趋于无穷大n
趋于无穷大; 在这里我使用的是明显的符号,它a_n
是字符a
重复n
多次.现在考虑字符串b
.我们要求f(a_n) < f(b)
所有人n
.但是f(b)
是一些有限整数,我们只是表明它f(a_n)
是无限的.我们有矛盾.没有这样的地图是可能的.
也许你可以告诉我们你需要什么?这是相当抽象的,我们可能会建议更合适的东西.此外,不一定担心一般解决"它".YAGNI等等.