leetcode168. Excel表列名称
给定一个正整数,返回它在 Excel 表中相对应的列名称。
例如,
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
示例 1:
输入: 1
输出: "A"
示例 2:
输入: 28
输出: "AB"
示例 3:
输入: 701
输出: "ZY"
方法:模拟
思路:
本题的思路比较简单,由示例可以看出,这种排列的方式是以26个大写字母为循环的。因此,可以不断的使用n对26取模,得到一个字母,然后对n除以26更新n,重复这个过程,直到n=0。
上面这种方式我们每次得到的字母顺序是倒序的,即先得到最后一个字母,最后得到第一个字母。
下面我们考虑如何得到字母,由题,如果取模之后余数为0,那么应该为’Z’,如果余数为temp,不为0,那么应该为‘A’+temp-1。
还需要考虑的是,如果取模余数为0,对应字母’Z’,但是此时对n的更新需要改变,在原来n = n / 26的基础上n–。
比如,n = 26,整除了,余数为0,对应的第一个字母为’Z’,此时n = n / 26 = 1。如果不减1的话,n = 1还会得出下一个字母’A’,那么答案就会变成’AZ’,因此对于整除的情况,n需要减1。
代码:
Python3: