Problem
Given a positive integer, return its corresponding column title as appear in an Excel sheet.
For example:
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
Example 1:
Input: 1
Output: "A"
Example 2:
Input: 28
Output: "AB"
Example 3:
Input: 701
Output: "ZY"
Solution
/**
* @param {number} n
* @return {string}
*/
var convertToTitle = function(n) {
var num = n;
var tmp = 0;
var res = '';
while (num > 0) {
tmp = num % 26;
if (tmp === 0) tmp = 26;
res = getChar(tmp) + res;
num = (num - tmp) / 26;
}
return res;
};
var getChar = function (num) {
var start = 'A'.charCodeAt(0);
return String.fromCharCode(start + num - 1);
};
Explain:
nope.
Complexity:
- Time complexity : O(log(n)).
- Space complexity : O(1).