给定一个正整数,返回它在 Excel 表中相对应的列名称。
例如,
1 -> A<br /> 2 -> B<br /> 3 -> C<br /> ...<br /> 26 -> Z<br /> 27 -> AA<br /> 28 -> AB <br /> ...
示例
示例 1:
输入: 1 输出: “A”
示例 2:
输入: 28 输出: “AB”
示例 3:
输入: 701 输出: “ZY”
题解
这道题类似进制的转换,比如十进制 13 转为 二进制 正常的方法则是将 13 不断除以 2,其余数倒着排列就是二进制的 13
这里可以当成 十进制 转 二十六进制,唯一不同的是这里没有 0,当遇到余数是0时,额外特殊处理
/**
* @param {number} columnNumber
* @return {string}
*/
var convertToTitle = function(columnNumber) {
let str = ''
const arr = []
while (columnNumber > 26) {
const n = columnNumber % 26
if (n > 0) {
arr.push(n)
columnNumber = Math.floor(columnNumber / 26)
} else {
arr.push(26)
columnNumber = Math.floor(columnNumber / 26) - 1
}
}
arr.push(columnNumber)
for (let i = arr.length - 1; i >=0; i--) {
str += getChar(arr[i])
}
return str
};
function getChar(n) {
return String.fromCharCode(n + 64)
}
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/excel-sheet-column-title
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。