gpt4 book ai didi

python - 添加字符在前面添加一个字符

转载 作者:太空狗 更新时间:2023-10-29 22:02:52 30 4
gpt4 key购买 nike

我要实现的是一个将字符串递增一个字符的函数,例如:

'AAA' + 1 = 'AAB'
'AAZ' + 1 = 'ABA'
'ZZZ' + 1 = 'AAAA'

我已经为前两种情况实现了功能,但是对于第三种情况我想不出任何解决方案。

这是我的代码:

def new_sku(s):
s = s[::-1]
already_added = False
new_sku = str()

for i in s:
if not already_added:
if (i < 'Z'):
already_added = True
new_sku += chr((ord(i)+1)%65%26 + 65)
else:
new_sku += i

return new_sku[::-1]

有什么建议吗?

最佳答案

如果你正在处理 bijective numeration ,那么你可能有(或应该有)函数来转换成双射表示或从双射表示转换;只需转换为整数、增加它,然后再转换回去,就会容易得多:

def from_bijective(s, digits=string.ascii_uppercase):
return sum(len(digits) ** i * (digits.index(c) + 1)
for i, c in enumerate(reversed(s)))

def to_bijective(n, digits=string.ascii_uppercase):
result = []
while n > 0:
n, mod = divmod(n - 1, len(digits))
result += digits[mod]
return ''.join(reversed(result))

def new_sku(s):
return to_bijective(from_bijective(s) + 1)

关于python - 添加字符在前面添加一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17965480/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com