LeetCode Notes: Excel Sheet Column Title
Question
Given an integer columnNumber
, return its corresponding column title as it appears in an Excel sheet.
For example:
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
Example 1:
Input: columnNumber = 1
Output: "A"
Example 2:
Input: columnNumber = 28
Output: "AB"
Example 3:
Input: columnNumber = 701
Output: "ZY"
Example 4:
Input: columnNumber = 2147483647
Output: "FXSHRXW"
Constraints:
- 1 <= columnNumber <= 231 - 1
For questions of the same type, please refer to
Solution
Analysis:
The decimal system is converted to the 26 system. The core algorithm is to divide 26 continuously, and find the letter corresponding to the remainder from right to left.
Code:
/**
* @param {number} columnNumber
* @return {string}
*/
var convertToTitle = function(columnNumber) {
// Store the result
const arr = []
//Until columnNumber is less than 26, it is the last loop
while(columnNumber){
//If it is 27, after subtracting 1, 26 % 26 is equal to 0, and fromCharCode(0+65) gets the next A
columnNumber--
const remainder = columnNumber% 26
arr.unshift(String.fromCharCode(remainder + 65))
// Get a multiple of 26 to proceed, the next cycle
columnNumber = parseInt(columnNumber / 26)
}
return arr.join('')
};
Comments