pow*_*118 5 python algorithm python-2.7
我已经看过其他几个与此类似的"问题"(和google'd吨),但它们似乎都不符合我的问题.
我试图制作一个非固定长度,唯一的文本字符串,只包含我指定的字符串中的字符.例如,由大写和小写的a-zA-Z字符组成.(对于这个例子,我只使用a,b和c小写)
像这样的东西(下面的代码破碎)
def next(index, validCharacters = 'abc'):
return uniqueShortAsPossibleString
Run Code Online (Sandbox Code Playgroud)
index参数将是与文本字符串相关的索引(整数),例如:
next(1) == 'a'
next(2) == 'b'
next(3) == 'c'
next(4) == 'aa'
next(5) == 'ab'
next(6) == 'ac'
next(7) == 'ba'
next(8) == 'bb'
next(9) == 'bc'
next(10) == 'ca'
next(11) == 'cb'
next(12) == 'cc'
Run Code Online (Sandbox Code Playgroud)
等等.字符串:
总之,如何编写next()函数将整数索引值与指定字符的唯一短字符串相关联?
PS我是SO的新手,这个网站多年来一直帮助我,虽然我从来没有做过帐户或问过问题(到现在为止),但我真的希望我做了一个好的工作来解释我的问题.我试图用这个完成.
您试图将一个数字转换为另一个基数的数字,但对该基数的数字使用任意字符。
import string
chars = string.lowercase + string.uppercase
def identifier(x, chars):
output = []
base = len(chars)
while x:
output.append(chars[x % base])
x /= base
return ''.join(reversed(output))
print identifier(1, chars)
Run Code Online (Sandbox Code Playgroud)
这可以让您跳转到任何位置,您可以进行计数,因此标识符是完全唯一的,并且可以轻松使用任何长度(两个或更多)的任何字符集,并且数字越小,标识符越短。
| 归档时间: |
|
| 查看次数: |
328 次 |
| 最近记录: |