LeeCode每日一题--Excel表列名称

Odele ·
更新时间:2024-09-21
· 612 次阅读

  【前言】坚持日更LeeCode刷题系列
    不积跬步,无以至千里;不积小流,无以成江海。愿与诸君共勉!

  【题目】168.Excel表列名称
    题目描述:给定一个正整数,返回它在 Excel 表中相对应的列名称。
    例如:

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

    示例:

示例 1: 输入: 1 输出: "A" 示例 2: 输入: 28 输出: "AB" 示例 3: 输入: 701 输出: "ZY"。

    思路一:什么?这不就是个进制转化问题吗?有什么看的,跳了跳了。不过当我们仔细去看的时候会发现虽然这是个进制转化的问题,但是它的这种转化与我们平常转化有些许不同,举个例子:
         在十进制中,10这个数字,‘1’代表的实际数字为10,因此我们表达10的时候用‘10’
         但是在这个例子中我们表达27的时候用的是‘AA’,因为在当前情况下没有表达0的符号,因此第一个’A‘的数值与’Z‘相等
         那么这种情况下,我们怎么去处理呢?看完编写的代码你就懂了。具体代码如下:

class Solution(object): def convertToTitle(self, n): """ :type n: int :rtype: str """ result_list = [] while n: result_list.append(chr((n-1)%26+ord('A'))) '''进制转化,注意此时先对n减1取余,而不是我们平常进制转化中的先取余再减一''' n = (n-1)//26 return "".join(result_list[::-1])

    运行结果:
    在这里插入图片描述

    说明:如果你还没有弄清楚刚才的进制转化,不妨拿个样例来试下,对比下平常我们进制转化下的做法与当前做法。


    分享就到这里了,欢迎大家一起交流讨论。


    注明

    题目来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/excel-sheet-column-title


作者:Mingw_



leecode

需要 登录 后方可回复, 如果你还没有账号请 注册新账号