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

  1. 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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。