LeetCode刷题笔记第168题:Excel表列名称

LeetCode刷题笔记第168题:Excel表列名称

题目:

给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。

例如:

A -> 1

B -> 2

C -> 3

...

Z -> 26

AA -> 27

AB -> 28

...

想法:

类似十进制转二进制,这里是1-26,要使用26进制则需要将1-26改为0-25。具体做法将输入的整数除以26得到的余数为个位数上的数值,再次除以26得到十位数上的数值依次类推,最终获得每个位数上的数值,再将这些数值对应的字符连接即为最终结果字符串

class Solution:
    def convertToTitle(self, columnNumber: int) -> str:
        result = []
        while columnNumber>0:
            columnNumber -= 1  # 此处为了将数值改为26进制数
            result.append(chr(columnNumber % 26 + ord("A")))  # 获得当前位置上的字符并添加入字符串列表
            columnNumber //= 26  # 获得除数进行下一轮计算
        return "".join(result[::-1])  # 字符串列表中存储的是倒叙的字符

上述方法的

时间复杂度:O(log26 columnNumber)

空间复杂度:O(1)

相关推荐
职略1 小时前
负载均衡类型和算法解析
java·运维·分布式·算法·负载均衡
A22741 小时前
LeetCode 196, 73, 105
java·算法·leetcode
阿里巴巴P8资深技术专家2 小时前
Java常用算法&集合扩容机制分析
java·数据结构·算法
zengson_g3 小时前
当需要对大量数据进行排序操作时,怎样优化内存使用和性能?
java·数据库·算法·排序算法
爱上电路设计3 小时前
有趣的算法
开发语言·c++·算法
十年一梦实验室5 小时前
【C++】相机标定源码笔记- 标定工具库测试
笔记·数码相机
Kerry_66 小时前
2024年江苏省研究生数学建模科研创新实践大赛C题气象数据高精度融合技术研究论文和代码分析
算法·数学建模·matlab·数据分析
风啊雨6 小时前
刷题Day44|188.买卖股票的最佳时机IV、309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费
算法
yachihaoteng6 小时前
Studying-代码随想录训练营day27| 贪心算法理论基础、455.分发饼干、376.摆动序列、53.最大子序和
c++·算法·leetcode·贪心算法
逸群不凡6 小时前
C++|哈希应用->布隆过滤器
开发语言·数据结构·c++·算法·哈希算法