写点什么

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

作者:Lee Chen
  • 2023-11-09
    福建
  • 本文字数:456 字

    阅读完需:约 1 分钟

原题链接: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 即可。


function titleToNumber(columnTitle: string): number {  let result: number = 0 // 缓存结果  let baseCode: number = 'A'.charCodeAt(0) // 缓存A的Code,用于计算26个英文字母的Code  // 生成一个哈希表,缓存26个字母对应的数字  let map: Map<string, number> = new Map(    Array.from({ length: 26 }, (item, index) => [      String.fromCharCode(baseCode + index),      index + 1,    ]),  )
// i代表当前位的值,j代表26的j次幂 // i和j相当于两个指针,分别从两端向中间推进 // 按照计算式,不断累加result即可 for ( let i = 0, j = columnTitle.length - 1; i < columnTitle.length; i++, j-- ) { result += map.get(columnTitle[i]) * Math.pow(26, j) }
return result};
复制代码


发布于: 刚刚阅读数: 3
用户头像

Lee Chen

关注

还未添加个人签名 2018-08-29 加入

还未添加个人简介

评论

发布
暂无评论
LeetCode题解:171. Excel 表列序号,哈希表,TypeScript,详细注释_JavaScript_Lee Chen_InfoQ写作社区