给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。
例如:
A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28...
示例 1:
输入:columnNumber = 1
输出:"A"
示例 2:
输入:columnNumber = 28
输出:"AB"
示例 3:
输入:columnNumber = 701
输出:"ZY"
示例 4:
输入:columnNumber = 2147483647
输出:"FXSHRXW"
提示:
1 <= columnNumber <= 2^31 - 1解法一:数学法
function convertToTitle(columnNumber: number): string { let res = "" while (columnNumber > 0) { columnNumber-- let tmp = columnNumber % 26 res = String.fromCharCode(65 + tmp) + res columnNumber = Math.floor(columnNumber / 26) } return res };解法二:逻辑法
通常的做法我们是 取余进制转换。
这时候我们会遇到 701的问题:
问题也就出在当余数是 0 的时候我们应该怎么处理,余数是 0 的时候我们应该取 26 而不应该是 0,所以就是如下了。
const ACharCode = 'A'.charCodeAt(0)
function convertToTitle(columnNumber: number): string {
let res = ""
while (columnNumber > 0) {
let tmp = columnNumber % 26
if (tmp === 0) {
columnNumber -= 26
tmp = 26
}
res = String.fromCharCode(64 + tmp) + res
columnNumber = Math.floor(columnNumber / 26)
}
return res
};
