LeetCode | 168.Excel表列名称

在这里插入图片描述
这道题一开始以为是简单的进制转换问题,用的以往的思路,对于一般性的进制转换题目,只需要不断地对 columnNumber 进行 % 运算取得最后一位,然后对 columnNumber 进行 / 运算,将已经取得的位数去掉,直到 columnNumber 为 0 即可。
但是这里可不是这样,比如 26 是 Z,52 是 AZ,因为这里是从 1 开始表示的,没有从 0 开始。所以我就进行了一个判断,因为出现 0 的情况只会在 columnNumber 能整除 26 的时候出现,其他情况下还是可以使用以往的思路的,

class Solution(object):
    def convertToTitle(self, columnNumber):
        """
        :type columnNumber: int
        :rtype: str
        """
        ans = ''
        # 使用字典推导式创建映射字典
        mapping = {i - 64: chr(i) for i in range(65, 91)}
        while columnNumber > 0:
            if columnNumber % 26 == 0:
                ans = mapping[26] + ans
                columnNumber -= 26
            else:
                ans = mapping[columnNumber % 26] + ans
            columnNumber = columnNumber // 26
        return ans

在这里插入图片描述
题解用的是数学的方法,很巧妙,总体的意思就是和正常 0~25 的 26 进制相比,本质上就是每一位多加了 1。假设 A == 0,B == 1,那么 AB = 26 * 0 + 1 * 1,而现在 AB = 26 * (0 + 1) + 1 * (1 + 1),所以只要在处理每一位的时候减 1,就可以按照正常的 26 进制来处理。

在这里插入图片描述

class Solution(object):
    def convertToTitle(self, columnNumber):
        """
        :type columnNumber: int
        :rtype: str
        """
        ans = ''
        # 使用字典推导式创建映射字典
        mapping = {i - 64: chr(i) for i in range(65, 91)}
        while columnNumber > 0:
            a = (columnNumber - 1) % 26 + 1
            ans = mapping[a] + ans
            columnNumber = (columnNumber - a) // 26
        return ans

相关推荐

  1. leetcode168Excel名称

    2024-06-16 11:20:03       9 阅读
  2. LeetCode刷题笔记第168题:Excel名称

    2024-06-16 11:20:03       13 阅读
  3. 【力扣】168. Excel名称、171. Excel 序号

    2024-06-16 11:20:03       19 阅读
  4. leetcode-Excel 序号

    2024-06-16 11:20:03       39 阅读
  5. Microsoft VBA Excel 提取相同名称的整数据

    2024-06-16 11:20:03       18 阅读
  6. python-pandas获取excel中每个sheet的名称

    2024-06-16 11:20:03       7 阅读
  7. LeetCode168. Excel Sheet Column Title

    2024-06-16 11:20:03       23 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-16 11:20:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-16 11:20:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-16 11:20:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-16 11:20:03       20 阅读

热门阅读

  1. 服务发现全流程解析-APOLLO7.0

    2024-06-16 11:20:03       8 阅读
  2. uniapp实现内嵌其他网页的功能

    2024-06-16 11:20:03       6 阅读
  3. [CODE:-5504]没有[SYS.SYSOBJECTS]对象的查询权限

    2024-06-16 11:20:03       10 阅读
  4. KaTex在博客中显示数学公式

    2024-06-16 11:20:03       8 阅读
  5. Linux安装ActiveMQ

    2024-06-16 11:20:03       7 阅读
  6. golang字符串拼接和strings.Builder

    2024-06-16 11:20:03       6 阅读
  7. QT6.3学习技巧,快速入门

    2024-06-16 11:20:03       4 阅读
  8. 图像去重技术:MD5哈希在自动化中的应用

    2024-06-16 11:20:03       5 阅读
  9. QLinkedList使用详解

    2024-06-16 11:20:03       6 阅读
  10. 基于物联网的智能晾衣架研发

    2024-06-16 11:20:03       4 阅读
  11. [程序员] openstack: openvswitch: firewall丢包

    2024-06-16 11:20:03       6 阅读
  12. STM32实现多级菜单界面显示

    2024-06-16 11:20:03       9 阅读
  13. 【Golang】Go 中的生产者-消费者模式

    2024-06-16 11:20:03       9 阅读
  14. HTML中的<img>标签使用指南

    2024-06-16 11:20:03       7 阅读