考虑一个长度为8的特殊用途字符串,比如“a0000xy”。字符串有以下限制。在
我如何实现一个函数,比如increment,当调用该函数时,字符串会增加一个。因此,后续调用应类似于以下内容:
>>> A = "A00000XY"
>>> print increment(A)
"A00000XY"
>>> print increment(A)
"A00001XY"
>>> print increment(A)
"A00002XY"
...
>>> print increment(A)
"A00009XY"
>>> print increment(A)
"A0000AXY"
>>> print increment(A)
"A0000BXY"
...
>>> print increment(A)
"A0000YXY"
>>> print increment(A)
"A0000ZXY"
>>> print increment(A)
"A00010XY"
>>> print increment(A)
"A00011XY"
...
>>> print increment(A)
"ZZZZZZXY"
灵感来自@avysk response。在
@avysk的回复有两个问题。在
在以下代码中修复了这些问题,这些代码借用了@avysk的响应。在
诱惑太高了。不过,不太适合做作业答题,恐怕是:D
更新:它是python2。在python3中,除法应该是
num // 36
。在所以你真正想要的是一个以36为基数的数字。您将需要构建一个类似于十六进制到十进制和十进制到十六进制转换工作方式的类。在8个字符的限制下,您的值从0到36^8-1,或2821109007455。 9223372036854775807是max integer in python,所以好消息是可以将值表示为整数。在
要将字符串值转换为整数:
要从整数转换为字符串值:
重复上述步骤,直到intValue<;36。任何剩余字符都将为0
显然,您还将构建递增和递减方法。
相关问题 更多 >
编程相关推荐