实现类Excel列名的字母序列递增方法需求
实现类Excel列名的字母递增方法
get_next_letter 需求:实现一个get_next_letter方法,接收由小写字母组成的字符串,按照Excel列名的递增规则返回下一个字符串。规则如下:
- 从
a依次递增到z z之后变为aa,接着是ab、ac…azaz之后变为ba,继续递增到zzzz之后变为aaa
伪代码逻辑
def get_next_letter(last_letter): return last_letter += 1 # 模拟类似数值递增的逻辑
Python实现代码
def get_next_letter(last_letter): chars = list(last_letter) index = len(chars) - 1 while index >= 0: if chars[index] == 'z': chars[index] = 'a' index -= 1 else: chars[index] = chr(ord(chars[index]) + 1) return ''.join(chars) # 所有字符都是z,需在头部添加a return 'a' + ''.join(chars)
调用测试示例
>>> get_next_letter('a') 'b' >>> get_next_letter('b') 'c' >>> get_next_letter('z') 'aa' >>> get_next_letter('aa') 'ab' >>> get_next_letter('az') 'ba' >>> get_next_letter('zz') 'aaa'
代码逻辑说明
- 将输入字符串转为字符列表,方便逐个修改字符
- 从字符串末尾开始逆向遍历:
- 遇到
z时,将其置为a并继续向前检查(模拟进位) - 遇到非
z字符时,将其ASCII码加1得到下一个字母,拼接成字符串后返回
- 遇到
- 若所有字符都是
z(遍历完所有索引仍未返回),则在结果头部添加一个a,完成位数升级
内容的提问来源于stack exchange,提问作者hewi
相关产品推荐
相关产品推荐

