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

news/2024/7/21 6:56:17 标签: leetcode, excel, 散列表

原题链接:
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
};

http://www.niftyadmin.cn/n/5166328.html

相关文章

解答开发转软件测试岗的困惑

有个知乎网友做了一年的软件开发&#xff0c;打算转软件测试&#xff0c;但是面试了几家都没有回音&#xff0c;希望大家能给一点建议。 由于这个问题不是今年提的&#xff0c;所以不用担心知友是受到了疫情的影响&#xff0c;单纯应该是个人的问题。 因为他只做了一年开发就想…

Go语言的Json序列化与反序列化、Goto语法、Tcp Socket通信

目录标题 一、Json序列化与反序列化1. 序列化2. 反序列化 二、Goto语法三、Tcp Socket1. 单客户端发送信息到服务端2. 服务端客户端通信 一、Json序列化与反序列化 1. 序列化 package mainimport ("encoding/json""fmt")type Person struct {Name string…

Flutter学习:使用CustomPaint绘制路径

Flutter学习&#xff1a;认识CustomPaint组件和Paint对象 Flutter学习&#xff1a;使用CustomPaint绘制路径 Flutter学习&#xff1a;使用CustomPaint绘制图形 Flutter学习&#xff1a;使用CustomPaint绘制文字 Flutter学习&#xff1a;使用CustomPaint绘制图片 drawPath 绘制路…

TexGen简单模型对应inp文件简单梳理-1

模型 默认最简单的编织复材&#xff0c;编辑材料属性时发现基体属性设置正常&#xff0c;各向同性材料&#xff0c;但是纱线的材料属性却没有弹性性能的设置。 导出inp文件后&#xff0c;导入ABAQUS中其实可以看到有两种材料&#xff0c;纱线也是有属性的。 ABAQUS中修改属性的…

C语言 预处理详解

目录 1.预定义符号 2.#define 2.1#define 定义标识符 2.2#define 定义宏 2.3#define 替换规则 2.4#和## 2.4.1# 的作用 2.4.2## 的作用 2.5 带有副作用的宏参数 2.6宏和函数的对比 对比 **2.7内联函数 2.8命名约定 3.#undef **4.命令行定义 5.条件编译 常…

Java获取时间戳、字符串和Date对象的相互转换、日期时间格式化、获取年月日

获取时间戳&#xff08;自1970年1月1日经历的毫秒数值&#xff09; package org.example;import java.util.Date;public class Main {public static void main(String[] args) {Date date1 new Date(1699540662210L);System.out.println(date1.getTime());Date date2 new Dat…

华大基因肿瘤检测助力早期癌症筛查,提高癌症患者生存率

提到癌症&#xff0c;你是不是也有这种刻板印象&#xff1a;得了癌症&#xff1d;时日无多了。实际上&#xff0c;很多癌症都可以通过早预防、早筛查、早治疗&#xff0c;从而成为可控的慢性病。近10年来&#xff0c;随着医疗水平和诊疗能力提升&#xff0c;我国癌症患者五年总…

文件管理技巧:如何利用文件名关键字进行整理

在日常生活和工作中&#xff0c;我们经常需要处理大量的文件&#xff0c;这些文件可能包含各种类型的信息&#xff0c;如文本、图像、视频、音频等。如何有效地管理和整理这些文件&#xff0c;以便我们能够快速找到所需的文件&#xff0c;是一个非常重要的问题。本文将介绍一种…