找出下面代码的规律并且编写一个函数,转换特定的整数到对应的字符串。
1 => A,2 => B,3 => C,...,26 => Z,27 => AA,28 => AB,29 => AC,...,52 => AZ,53 => BA,...
function convert (num) {
}
convert函数怎么写?这道题怎么做?有会的吗?
找出下面代码的规律并且编写一个函数,转换特定的整数到对应的字符串。
1 => A,2 => B,3 => C,...,26 => Z,27 => AA,28 => AB,29 => AC,...,52 => AZ,53 => BA,...
function convert (num) {
}
convert函数怎么写?这道题怎么做?有会的吗?
function convert(num){
var result = [];
while(num){
var t = num % 26;
if(!t){
t = 26;
-- num;
}
result.push(String.fromCodePoint(t + 64));
num = ~~(num / 26);
}
return result.reverse().join('');
}
这是不是leetcode上面的。。
这样可以吗
function convert (num) {
var s = ''
while (num > 0) {
var m = num % 26
if (m === 0) m = 26
s = (m + 9).toString(36) + s
num = (num - m) / 26
}
return s.toUpperCase()
}
function convert(num) {
var saveLet = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
var singleLet = "";
var val = 0;
while (num > 0) {
val = (num-1) % 26
singleLet = saveLet[val] + singleLet;
num = Math.floor((num-1) / 26);
}
return singleLet;
}
function convert (num) {
var str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var len = str.length;
var carry = num;
var ret = [];
if (!num || num < 0) {
return;
}
do{
var unit = carry % len;
if (!unit) {
carry = carry -1;
unit = len;
}
ret.unshift(str.charAt(unit-1));
if (carry && carry>0) {
carry = Math.floor(carry/len)
}else{
carry = 0
}
}
while (carry);
return ret.join('');
}
function convert(n) {
var s = '';
while (n>0) {
var m = n % 26;
if (m==0) m = 26;
s = String.fromCharCode(m + 64) + s;
n = (n - m) / 26;
}
return s;
}
// 字符串转数字 利用ascill 数字转字符也可以用这种吧
function convert(str) {
var count = 0;
var strArray = str.toUpperCase().split('');
strArray.forEach(function(item, index) {
count += item.charCodeAt() - 64 + index*25;
})
return count
}
function transformChars(s) {
var chars = ["A", "B", "C", "D", "E", "F", "G",
"H", "I", "J", "K", "L", "M", "N",
"O", "P", "Q", "R", "S", "T", "U",
"V", "W", "X", "Y", "Z"
];
function getCharIndex(string) {
var strings = string.trim().split("");
var indexs = [];
var temp = [];
var result = 0;
for (var i = 0; i < strings.length; i++) {
indexs.push(chars.indexOf(strings[i]) + 1);
}
for (var i = 0; i < indexs.length; i++) {
if (i === indexs.length - 1) {
temp.push(indexs[i])
} else {
temp.push(indexs[i] * chars.length + (i === 0 ? 0 : Math.pow(chars.length, i+1) - 26 ))
}
}
for (var i = 0; i < temp.length; i++) {
result += temp[i]
}
return result;
}
return getCharIndex(s)
}
transformChars("BC")
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答875 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
总而言之一句话: