前端算法-Excel表的列名称

简介: 前端算法-Excel表的列名称

题目

给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。

A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28 

思路一

我们先定义一个arr数组并将26个字母放入,我们为了计算方便,在头部额外加个Z,因为数组的下标是从0开始的,然后进行判断如果当前形参n小于等于26则直接返回对应的arr数组的n位置元素,在声明一个i变量记录余数字符,声明一个str变量记录字符串,在使用循环,进行循环当前形参n大于26的情况,在循环中,我们更新i变量和n变量以及str变量,最后n形参肯定是小于26的,所以我们将其对应于数组中的字符添加到str字符串的头部并返回出去

/**
 * @param {number} n
 * @return {string}
 */
var convertToTitle = function(n) {
    let arr = ['Z','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'];
    if(n<=26){
        return arr[n]
    }
    let i = ''
    let str = ''
    while(n>26){
        i = a[n%26]
        n = Math.ceil(n/26)-1
        str = i + str
    }
    str = arr[n] + str
    return str
};

思路二

我们先声明一个res变量用于存放结果,在声明一个Map数据结构,将26个字符全部放进去,然后使用循环进行判断当前columnNumber形参是否大于0,如果是则使用用余数取字符,并赋值给cur变量,在将其添加到res变量的头部,最后使用Math.floor更新columnNumber形参值,最后使用join方法把res数组转换成字符串并返回出去

/**
 * @param {number} columnNumber
 * @return {string}
 */
var convertToTitle = function(columnNumber) {
    let res = [];
    let map = new Map([[1,"A"], [2,"B"], [3,"C"], [4,"D"], [5,"E"], [6,"F"], [7,"G"], [8,"H"], [9,"I"], [10,"J"], [11,"K"], [12,"L"], [13,"M"], [14,"N"], [15,"O"], [16,"P"], [17,"Q"], [18,"R"], [19,"S"], [20,"T"], [21,"U"], [22,"V"], [23,"W"], [24,"X"], [25,"Y"], [26,"Z"]]);
    while(columnNumber > 0){
        let cur = columnNumber % 26 ? columnNumber % 26 : 26;
        res.unshift(map.get(cur));
        columnNumber = Math.floor((columnNumber - cur) / 26);
    }
    return res.join("");
};


相关文章
算法备案提示主体名称已被填报,请修改后再进行填报怎么办?
在数字化浪潮中,算法备案是企业合规运营的关键。近期有企业在提交主体备案时遇“主体名称已被填报”的提示,原因是内部信息沟通不畅。解决方案包括找回原账号继续操作或驳回申请重新提交。为预防类似问题,企业应建立备案档案、加强团队沟通并明确责任分工,确保备案流程顺利进行。
|
7月前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
548 5
|
移动开发 算法 前端开发
前端算法之堆排序
前端算法之堆排序
68 1
|
数据安全/隐私保护
杨老师课堂之Excel VBA 程序开发第六讲根据部门列创建工作表
杨老师课堂之Excel VBA 程序开发第六讲根据部门列创建工作表
92 0
|
算法 前端开发
前端算法之快速排序
前端算法之快速排序
89 0
|
算法 前端开发 搜索推荐
前端算法之归并排序
前端算法之归并排序
67 0
|
9月前
|
移动开发 算法 前端开发
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
152 0
|
12月前
|
数据格式 Python
Python代码示例,读取excel表格,将行数据转为列数据。(10)
【7月更文挑战第10天】Python代码示例,读取excel表格,将行数据转为列数据。
343 2
|
存储 开发工具 git
好的git管理方法,标明项目_编号_(功能,不过还是在没有bug出现时就提交为好)+Excel表管理的格式
好的git管理方法,标明项目_编号_(功能,不过还是在没有bug出现时就提交为好)+Excel表管理的格式
|
数据安全/隐私保护
杨老师课堂之Excel VBA 程序开发第六讲 根据制定列创建相应工作表及数据
杨老师课堂之Excel VBA 程序开发第六讲 根据制定列创建相应工作表及数据
64 1

热门文章

最新文章