LeetCodeExcel表列名称(Python)

tech2023-01-25  125

题目

解题思路

因为

“AB” = “A” × ( 261 ) + “B” × ( 260 ) = 1 × ( 261 ) + 2 × ( 260 ) = 28

“ZY” = “Z” × ( 261 ) + “Y” × ( 260 ) = 26 × ( 261 ) + 25 × ( 260 ) = 701

所以其实这道题就是一个将 十进制 转换成 伪26进制 的问题,不同的地方在于这个26进制是从1开始的(“A” = 1)而不是从0开始的,所以满26不进位 ( “Z” = 26 ),满27才进位( “AA” = 27 )。

使用了两个内置函数来做这道题:

1、ord()函数:

2、chr()函数:

代码如下:

执行结果为: 看了评论区,发现可以将while循环中的if判断省去:

n-1其实就是将满27进1还原成了满26进1。

结果没有很大区别:

最新回复(0)