168. Excel表列名称(Python)

题目

难度:★☆☆☆☆
类型:数学

给定一个正整数,返回它在 Excel 表中相对应的列名称。

例如,

1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...

示例

示例 1:
输入: 1
输出: "A"

示例 2:

输入: 28
输出: "AB"

示例 3:
输入: 701
输出: "ZY"

解答

这道题与进制转换类似,实际上十进制与二十六进制的相互转换,是【题目171. Excel表列序号】的逆过程,需要注意的是,这里名称“A”对应的是第1列而不是第0列,在计算时需要先将列序号减一然后进行转换。除了可以用字典,这里我们使用更便捷的ascii码字符与数字的对应关系进行转换,字母“A”和“Z”对应的ascii码分别为65和90。

class Solution(object):
    def convertToTitle(self, n):
        """
        :type n: int
        :rtype: str
        """

        res = ''                            # 结果
        while n:                            # 当商大于0时
            n -= 1                          # 要先减1才能找到对应的数字
            r, n = n % 26, n // 26          # 获取当前的商和余数
            res = chr(65+r) + res           # 寻找当前位对应的字符,加入到结果的最高位
        return res

如有疑问或建议,欢迎评论区留言~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,937评论 0 38
  • 作者:July、wuliming、pkuoliver 说明:本文分为三部分内容,第一部分为一道百度面试题Top K...
    cyj_ya阅读 836评论 0 0
  • 动态规划 111. 爬楼梯思路类似斐波那契数列注意考虑第 0 阶的特殊情况 272. 爬楼梯 II思路类似上题,只...
    6默默Welsh阅读 2,461评论 0 1
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,453评论 0 9
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,921评论 0 2