Skip to content
On this page

171. Excel 表列序号

给你一个字符串  columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号  。
例如:
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...

示例 1:
输入: columnTitle = "A"
输出: 1

示例  2:
输入: columnTitle = "AB"
输出: 28

示例  3:
输入: columnTitle = "ZY"
输出: 701

提示:
1 <= columnTitle.length <= 7
columnTitle 仅由大写英文组成
columnTitle 在范围 ["A", "FXSHRXW"] 内

javascript
/**
 * @param {string} columnTitle
 * @return {number}
 */
var titleToNumber = function (columnTitle) {
  var words = {
    A: 1,
    B: 2,
    C: 3,
    D: 4,
    E: 5,
    F: 6,
    G: 7,
    H: 8,
    I: 9,
    J: 10,
    K: 11,
    L: 12,
    M: 13,
    N: 14,
    O: 15,
    P: 16,
    Q: 17,
    R: 18,
    S: 19,
    T: 20,
    U: 21,
    V: 22,
    W: 23,
    X: 24,
    Y: 25,
    Z: 26,
  }

  var str = columnTitle.split("").reverse("")
  return str.reduce(function (res, item, index) {
    res += words[item] * Math.pow(26, index)
    return res
  }, 0)
}

console.log(titleToNumber("A") === 1)
console.log(titleToNumber("Z") === 26)
console.log(titleToNumber("AB") === 28)
console.log(titleToNumber("AZ") === 52)
console.log(titleToNumber("ZY") === 701)
console.log(titleToNumber("AJHX") === 24568)
console.log(titleToNumber("FXSHRXW") === 2147483647)