LeetCode168-Excel表列名称

题目链接

英文链接:https://leetcode.com/problems/excel-sheet-column-title/

中文链接:https://leetcode-cn.com/problems/excel-sheet-column-title/

题目详述

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

例如,

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

示例 1:

1
2
输入: 1
输出: "A"

示例 2:

1
2
输入: 28
输出: "AB"

示例 3:

1
2
输入: 701
输出: "ZY"

题目详解

  • 实际上就是 10 进制转 26 进制,进制转换的常用方法是除 k 取余法。
  • 由于 10 进制为 0 ~ 9,26 进制为 A~Z,但本题 1 -> A,为了正常地进行进制转换,需要先对数字减一,然后再采用除 k 取余法。
  • 最后需要翻转序列。
1
2
3
4
5
6
7
8
9
10
11
12
public class LeetCode_00168 {

public String convertToTitle(int n) {
StringBuilder sb = new StringBuilder();
while (n > 0) {
--n;
sb.append((char) (n % 26 + 'A'));
n /= 26;
}
return sb.reverse().toString();
}
}