LeetCode题目解析
LeetCode题目解析
Easy
168. Excel表列名称
题目描述
给定一个正整数 columnNumber,返回它在 Excel 表中对应的列名称。
示例:
1 | 输入:columnNumber = 1 |
解题思路
这题本质上是一个特殊的 26 进制转换。
普通的进制转换通常从 0 开始计数,而 Excel 列名是从 1 开始计数:
1 | A -> 1 |
因此在每一轮取余之前,需要先执行 columnNumber--,把 1 ~ 26 映射成 0 ~ 25。
然后通过:
1 | char ch = (char) ('A' + remainder); |
就可以得到当前位对应的字母。
由于每次得到的是最低位字符,所以需要把字符插入到结果字符串的最前面。
代码实现
1 | package easy; |
复杂度分析
- 时间复杂度:
O(log26 n),每次循环都会将columnNumber除以 26。 - 空间复杂度:
O(log26 n),结果字符串的长度与转换后的列名长度有关。
易错点
- 不能直接对
columnNumber取余,否则26会得到0,无法正确映射到Z。 - 每轮循环都要先执行
columnNumber--,再进行取余和除法操作。
Medium
hard
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 鱼小红的Blog!



