Skip to content

171. Excel 表列序号 #27

Open
Open
@zpc7

Description

@zpc7

171. Excel 表列序号

/**
 * @param {string} columnTitle
 * @return {number}
 */
// 方法1
var titleToNumber = function (columnTitle) {
    // 先制作A->1 Z->26的基础映射表
    const map = {}

    const baseCharCode = 65; // 字符A对应的ASCII码
    for (let i = 0; i < 26; i++) {
        const key = String.fromCharCode(baseCharCode + i);
        map[key] = i + 1
    }

    // 计算序号
    let res = 0;
    for (let i = 0; i < columnTitle.length; i++) {
        const cur = columnTitle[i];
        res += map[cur] * Math.pow(26, columnTitle.length - i - 1)
    }
    return res;
};
// 方法2
var titleToNumber = function(columnTitle) {
    let number = 0;
    let multiple = 1;

    for (let i = columnTitle.length - 1; i >= 0; i--) {
        // 跟字符A的差值
        const k = columnTitle[i].charCodeAt() - 'A'.charCodeAt() + 1;
        // 累加
        number += k * multiple;
        // 每次循环 乘数翻倍 相当于Math.pow
        multiple *= 26;
    }
    return number;
};

Metadata

Metadata

Assignees

No one assigned

    Labels

    简单LeetCode 难度定级

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions