168.Excel表列名字(javascript)168.ExcelSheetColumnTitle

原创
小哥 3年前 (2022-11-10) 阅读数 9 #大杂烩

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
版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除