Excel表列序号(15-14)
题解和思路
- 思路
* 因为有26个字母,相当于 26 进制转 10 进制
* 详解
* 1. 26 进制 转化 10 进制公式,ans = ans * 26 + num
* 2. 比如:AB = 126 +2 = 28,ZY=2626+25 = 701 * 示例
* A->1
* B->2
* C->3
* ...
* Z->26
* AA->27
* AB->28
* 输入: "A",
* 输出:1
* 输入: "AB",
* 输出: 28
代码如下
const titleToNumber = function(s){
const arr = ['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'];
const len = s.length;
let sum = 0;
for (let index = 0;
index < len;
index++) {
const tempLeft = arr.indexOf(s[index]) + 1;
const tempRight = Math.pow(26,len - 1 - index);
sum = tempLeft * tempRight + sum;
}
return sum;
}
【Excel表列序号(15-14)】
ps
:进制转换的问题,26的N次方- 复杂度分析
- 时间复杂度: O(n) 对于每个元素,通过一次遍历数组的其余部分来寻找它所对应的目标元素,这将耗费 O(n)
的时间。 - 空间复杂度: O(1)
- 由于算法中临时变量得个数与循环次数无关,所以空间复杂度为 O(1)
文章图片
洲洲
推荐阅读
- ExcelPackage读取写入
- Excel|Excel 2013 新增功能之瞬间填充整列数据!
- Excel基础知识-打印的那些事(上)
- 教你如何做一个好看的表格,excel使用技巧大全
- javascript|vue使用js-xlsx导出excel,可修改格子样式,例如背景颜色、字体大小、列宽等
- vue|vue js-xlsx导入导出excel文件Demo
- 数据库|效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)...
- 用c#转换word或excel文档为html文件|用c#转换word或excel文档为html文件,C#实现DataSet内数据转化为Excel和Word文件的通用类完整实例...
- EXCEL的汽车导航-全能的GPS定位
- Python如何实现Excel的最合适列宽(openpyxl)