168.Excel表列名称Java
题目描述
给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。
输入输出样式
示例1:
输入:columnNumber = 1
输出:“A”
示例2:
输入:columnNumber = 28
输出:“AB”
示例3:
输入:columnNumber = 701
输出:“ZY”
本题来自LeetCode:https://leetcode-cn.com/problems/excel-sheet-column-title/
思路
乍一看类似于进制转换,不过这个是1~26对应A-Z,需要注意的是这里没有0对应的字母,因此需要将1-26转化为0-25避免错误。
算法分析
时间复杂度O(log26 columNumber),空间复杂度为O(1)
求解函数
public String convertToTitle(int columnNumber) {
String rst = "";
while (columnNumber != 0) {
int temp = (columnNumber - 1) % 26;
//将数字转化为对应的字母
rst = (char) (temp + 'A') + rst;
columnNumber = (columnNumber - 1) / 26;
}
return rst;
}