171. Excel 表列序号
给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。
例如:

  1. A -> 1
  2. B -> 2
  3. C -> 3
  4. ...
  5. Z -> 26
  6. AA -> 27
  7. AB -> 28
  8. ...

示例 1: 输入: columnTitle = “A” 输出: 1

示例 2: 输入: columnTitle = “AB” 输出: 28

示例 3: 输入: columnTitle = “ZY” 输出: 701

方法

⭐️ 进制转换

  1. var titleToNumber = function(columnTitle) {
  2. let ans = 0;
  3. for (let i = 0; i < columnTitle.length; i++) {
  4. let num = columnTitle.charCodeAt(i) - 'A'.charCodeAt() + 1;
  5. ans = ans * 26 + num;
  6. }
  7. return ans;
  8. };

复杂度分析

  • 时间复杂度:O(n),其中 n是列名称 columnTitle的长度。需要遍历列名称一次。
  • 空间复杂度:O(1)。

注意点

  • columnTitle[i]不是数字,是字符串,需要charCodeAt()来转换
  • ans不需要+=,只需要=ans * 26 + num,应该num在后面写了,已经在后面加上了