26进制转换:转换函数将数字转成对应的大写字母
Author:zhoulujun Date:
昨天看了一道题,惭愧,闹到一浆糊了,都没有写出来,题目内容如下:
完成一个转换函数,将数字转成对应的大写字母,满足下面的对应关系
1 => A; 2 => B; 3 => C ...
26 => Z; 27 => AA;28 => AB;29 => AC ...
52 => AZ; 53 => BA;54 => BB; ...
这个题目我想了到了进制转换。二进制转换就是一直除以2。除以转换的进制 数。但是这个算法,我都没有写出来。
今天
/** * 获取字符串,比较笨的写法 let arr = [A-z] * @param start {number} 开始字符 * @param num {number} 获取多少个 * @return {[]} 返回字符串数组 */ function getLetters (start = 65, num = 26) { let end = start + num; let arr = []; while (start < end) { arr.push(String.fromCharCode(start)); start++; } return arr; } /** * 26进制转换函数 * @param num {number} 转换数组 * @return {unknown[]} */ function convert (num) { if (Object.prototype.toString.call(num)!=='[object Number]'||isNaN(num)) { throw new Error('输入的不是数字'); } let letters = getLetters(); let m = (num).toString(26).split(''); return m.map((num) => { num = parseInt(num); if (num === 0) { return 'Z'; } else { return letters[num - 1]; } }); } console.log(convert(1)); console.log(convert(2)); console.log(convert(26)); console.log(convert(27)); console.log(convert(28)); console.log(convert(29)); console.log(convert(52)); console.log(convert(53)); console.log(convert(54));
多简单呀。居然写了半天写不出来。有时候脑壳卡壳。就是没有思路
还有一个就晚睡。前天晚睡2点才睡。
所以还是早睡早起,如果问题卡主了。待会儿在来想。
转载本站文章《26进制转换:转换函数将数字转成对应的大写字母》,
请注明出处:https://www.zhoulujun.cn/html/theory/algorithm/leetcode/8501.html
上一篇:First page
下一篇:Last page