Skip to content

LeetCode题解:171. Excel 表列序号,哈希表,TypeScript,详细注释 #449

Description

@chencl1986

原题链接:
https://leetcode.cn/problems/excel-sheet-column-number/

解题思路:

  1. 先回忆一下10进制数的计算方式,假设321,计算式为:result = 3 * 10^2 + 2 * 10^1 + 1 * 10^0
  2. 那么对于该题,即为计算26进制数,将上面算式中的10替换为26即可。
functiontitleToNumber(columnTitle: string): number{letresult: number=0// 缓存结果letbaseCode: number='A'.charCodeAt(0)// 缓存A的Code,用于计算26个英文字母的Code// 生成一个哈希表,缓存26个字母对应的数字letmap: Map<string,number>=newMap(Array.from({length: 26},(item,index)=>[String.fromCharCode(baseCode+index),index+1,]),)// i代表当前位的值,j代表26的j次幂// i和j相当于两个指针,分别从两端向中间推进// 按照计算式,不断累加result即可for(leti=0,j=columnTitle.length-1;i<columnTitle.length;i++,j--){result+=map.get(columnTitle[i])*Math.pow(26,j)}returnresult};

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions