168. Excel表列名称(javascript)168. Excel Sheet Column Title

leetcode题目来源于:https://leetcode-cn.com/problems/excel-sheet-column-title/
给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。

Given an integer columnNumber, return its corresponding column title as it appears in an Excel sheet.

例如:

A -> 1
B -> 2
C -> 3

Z -> 26
AA -> 27
AB -> 28

示例 1:

输入:columnNumber = 1
输出:“A”

示例 2:

输入:columnNumber = 28
输出:“AB”

示例 3:

输入:columnNumber = 701
输出:“ZY”

示例 4:

输入:columnNumber = 2147483647
输出:“FXSHRXW”

对题目进行解析,A~Z是1到26 与26进制不同的是,十六进制是0到25,只有将数据每次减一才符合进制转换,接下来只需要进行,将十进制转换成十六进制,再将十六进制数字转换成Unicode 编码

在这里插入图片描述

function convertToTitle(columnNumber) {
            var str = ""
            while (columnNumber >= 1) {
                columnNumber--
               //将余数在代表的字符,通过str储存起来
                str += String.fromCharCode("A".charCodeAt() + columnNumber % 26);
                console.log("str", str, columnNumber % 26, columnNumber / 26);
                //columnNumber,被除数更新为商的值
                columnNumber = Math.floor(columnNumber / 26);
            }
            console.log("str",str.split("").reverse().join(""))//将字符串进行翻转,先字符串转换成数组,再将数组翻转,再将翻转后的数组转换成字符串
            return str.split("").reverse().join("")
        };
        convertToTitle(51)//AY

知识点:
1.String.fromCharCode(65)----A
将 Unicode 编码转为一个字符:

var n = String.fromCharCode(65);

2.“A”.charCodeAt()—65
返回字符串第一个字符的 Unicode 编码(H 的 Unicode 值):

var str = "HELLO WORLD";
var n = str.charCodeAt(0);
"A".charCodeAt()

3.Math.floor() 返回小于或等于一个给定数字的最大整数。

备注:可以理解 Math.floor()为向下取整

Math.floor(25.11)
//25

4.str.split("").reverse().join("")

let str="AY"
var num = str.split("").reverse().join("")
//str--AY
//num--YA
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值