您的位置:首页 > Web前端 > JavaScript

[leetcode]168. Excel Sheet Column Title -- JavaScript 代码

2016-08-22 10:22 351 查看
/**
* @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–这一步是必须做的。

还有一道题和这道题目的转换方向相反,在这里也给出代码:

171. 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;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript leetcode