168.Excel表列名称

【LetMeFly】168.Excel表列名称

力扣题目链接:https://leetcode.cn/problems/excel-sheet-column-title/

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

例如:

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

 

示例 1:

输入:columnNumber = 1
输出:"A"

示例 2:

输入:columnNumber = 28
输出:"AB"

示例 3:

输入:columnNumber = 701
输出:"ZY"

示例 4:

输入:columnNumber = 2147483647
输出:"FXSHRXW"

 

提示:

  • 1 <= columnNumber <= 231 - 1

方法一:模拟

详细的介绍可以参考我之前的一篇博客:https://letmefly.blog.csdn.net/article/details/124512136

有点类似十进制转二十六进制,但是Excel中列数是从1开始的而不是从0开始的。

也就是说0没有对应的字符。

如果是简单的进制转换,0应该对应字符A,但是这种情况下1对应字符A,因此在转换字符的每一位之前,把数字减去1即可。

  • 时间复杂度$O(\log_{26} columnNumber)$
  • 空间复杂度$O(1)$

AC代码

C++

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public:
string convertToTitle(int columnNumber) {
string ans;
while (--columnNumber >= 0) {
ans = (char)(columnNumber % 26 + 'A') + ans;
columnNumber /= 26;
}
return ans;
}
};

同步发文于CSDN,原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/126156416


168.Excel表列名称
https://blog.letmefly.xyz/2022/08/04/LeetCode 0168.Excel表列名称/
作者
Tisfy
发布于
2022年8月4日
许可协议