小能豆

在 Python 中递增字符串

python

如何在 python 中增加字符串?例如,x 应更改为 y,y 应更改为 z,z 应更改为 a。 请注意,只有最后一个字母应该更改。例如,单词 Ved 应更改为 Vee,而不是 Wfe

其他示例:xyz 应增加到 xza。

def increment(password):
    char = password[-1]

    i = ord(char[0])

    i += 1

    if char == 'z':
        return password[:-2] + increment(password[-2]) + 'a'
    char = chr(i)

    return password[:-1] + char

阅读 156

收藏
2023-06-15

共1个答案

小能豆

您可以使用以下函数来实现字符串的增加操作:

def increment(password):
    last_char = password[-1]

    if last_char == 'z':
        return increment(password[:-1]) + 'a'

    incremented_char = chr(ord(last_char) + 1)

    return password[:-1] + incremented_char

该函数首先获取字符串的最后一个字符。如果最后一个字符是 ‘z’,则递归调用自身来处理前面的字符,并将最后一个字符替换为 ‘a’。否则,通过将最后一个字符的 ASCII 值加 1 来获得递增后的字符,并将其替换到原始字符串的最后一个位置。

以下是一些示例:

print(increment('x'))  # 输出: y
print(increment('y'))  # 输出: z
print(increment('z'))  # 输出: a
print(increment('ved'))  # 输出: vee
print(increment('xyz'))  # 输出: xza

请注意,在处理单词 ‘ved’ 时,只有最后一个字母 ‘d’ 被替换为 ‘e’,而不是直接将整个单词替换为 ‘vee’。这符合您的要求。

希望这可以帮助到您!

2023-06-15