[leetcode]168. Excel Sheet Column Title -- JavaScript 代码
/** * @param {number} n * @return {string} */
var convertToTitle = function(n) { // fromCharCode();
if(n===0){
return 0;
}
var str = [];
while(n>0){
n--;
code = String.fromCharCode(n%26+65);
n = Math.floor(n/26);
str.push(code);
}
return str.reverse().join("");
};
这道题的核心是使用了JS的方法String.fromCharCode,它可以将数字转化为对应的ascii码。
另外,这道题相当于是一个26进制的转化,但是给的题目比较迷惑,因为没有0,所以我们必须自己手动转化,将A看作0,将Z看做25…所以n–这一步是必须做的。
还有一道题和这道题目的转换方向相反,在这里也给出代码:
Excel Sheet Column Number:
/* @param {string} s @return {number} /
var titleToNumber = function(s) {
// 26进制问题
var len = s.length;
if(len===0){return 0;
}
var sum = 0;
for(var i=0;i<len;i++){var cur = s.charCodeAt(i)-64;
sum = sum * 26 + cur;
}
return sum;
};
还没有评论,来说两句吧...