首页 > 试题广场 >

Excel列名称

[编程题]Excel列名称
  • 热度指数:1727 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

excel列序号与列名称的映射关系是:
1->A
2->B
...
27->AA
28->AB
...

数据范围:
示例1

输入

5

输出

"E"
示例2

输入

29

输出

"AC"
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param n int整型
# @return string字符串
#
class Solution:
    def ExcelTitle(self, n: int) -> str:
        # write code here
        convertStr = ""
        convertDict = {
            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",
            0: "Z",
        }
        while int(n / 26) != 0:
            x = convertDict[n % 26]  # 获取末尾数字对应的字母
            convertStr += x  # 将对应的字母添加到临时变量末尾
            if x == "Z":                    # 如果末尾是Z,因为对前一位借位,右移时要减去1
                n = int((n / 26) - 1)
            else:
                n = int(n / 26)  # 右移一位,使右二位移至右一位,以此类推
        x = convertDict[n]
        convertStr += x
        return convertStr[::-1]

发表于 2022-09-28 17:12:39 回复(0)