LeetCode 168. Excel列表名称详解

刷到了这一道简单难度题

https://leetcode-cn.com/problems/excel-sheet-column-title/https://leetcode-cn.com/problems/excel-sheet-column-title/

粗看就是一道进制转换题不过容易掉坑里。

首先略讲一下进制转换,

以701为例,该数字可以转换为以下形式:

701 = 0*26^2+26*26^1+25*26^0

1-26分别代表A-Z,使用 chr(65+x) 可以很容易将数字转换成符号,

不过看到这里该题非常坑B的地方已经很明显了:

用简单除余只会得到0,不能得到26,虽然也可以用条件判断不过这里可以将该公式转换成

701 = 0*26^2+(25+1)*26^1+(24+1)*26^0

每次循环的时候先除以26,得到的数-1再进行除余这样可以保证得到的数是0-25,分别代表A-Z

num = 701
string = ''

while num:
    num -= 1
    val = num%26
    num -= val
    num = int(num/26)
    print(val)
    string = chr(65+val) + string

    print(string)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值