LeetCode 168. Excel表列名称(Python)

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

例如,

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

题目链接:https://leetcode-cn.com/problems/excel-sheet-column-title

解法一:新建一个字典dicts,键为顺序值,值为大写字母对n%26==0的情况做-1处理

class Solution:
    def convertToTitle(self, n: int) -> str:
        dicts = {1: 'A', 2: 'B', 3: 'C', 4: 'D', 5: 'E', 6: 'F', 7: 'G', 8: 'H', 9: 'I', 10: 'J', 11: 'K', 12: 'L', 13: 'M',14: 'N', 15: 'O', 16: 'P', 17: 'Q', 18: 'R', 19: 'S', 20: 'T', 21: 'U', 22: 'V', 23: 'W', 24: 'X', 25: 'Y', 26: 'Z'}
        res = ''
        while n > 0:
            if n%26==0:
                res = dicts[26]+res
                n = n//26-1
            else:
                res = dicts[n%26]+res
                n = n//26
        return res

解法二:新建一个数组arr存放26个大写字母,将"Z"放在arr[0]位置,即n%26对应的值。26的倍数26、52等分别对应A、AZ,对n%26==0的情况做-1处理。

class Solution:
    def convertToTitle(self, n: int) -> str:
        arr = ['Z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y']
        res = ''
        while n>0:
            res = arr[n%26]+res
            if n%26==0:
                n = n//26-1
            else:
                n = n//26
        return res
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值