20220509, 2min,中间相隔11天

|
```javascript /**

  • @param {string} columnTitle
  • @return {number} */ // 21:35 -> 21:37 var titleToNumber = function(columnTitle) { let sum = 0; for (let i = 0; i < columnTitle.length; i++) {
    1. const n = columnTitle[i].charCodeAt() - 'A'.charCodeAt() + 1;
    2. sum = sum * 26 + n;
    } return sum; }; ``` | | —- |

20220427. 8min

|
```javascript /**

  • @param {string} columnTitle
  • @return {number} / // 16:22 -> 16:30 var titleToNumber = function(columnTitle) { let ans = 0; for (let i = 0; i < columnTitle.length; i++) { // ans += ans 26 + columnTitle[i] // bug:columnTitle[i]是字母,不是数字 const n = columnTitle[i].charCodeAt() - ‘A’.charCodeAt() + 1; // ans += ans 26 + n; // bug ans = ans 26 + n; } return ans; };
 |
| --- |


<a name="v6940"></a>
## 20220421, 6min
| <br />```javascript
/**
 * @param {string} columnTitle
 * @return {number}
 */
 // 15:14 -> 15:20
var titleToNumber = function(columnTitle) {
  let sum = 0;
  for (let i =0; i < columnTitle.length; i++) {
    const num = columnTitle[i].charCodeAt() - 'A'.charCodeAt() + 1;
    // sum += sum * 26 + num; // bug:没有加
    sum = (sum * 26 + num);
  }
  return sum;
};

| | —- |

20220420, 4min

|
```javascript /**

  • @param {string} columnTitle
  • @return {number} / // 10:50 -> 10:54 var titleToNumber = function(columnTitle) { // const arr = columnTitle.split(‘’); let ans = 0; for (let i = 0; i < columnTitle.length; i++) { const cur = columnTitle[i].charCodeAt() - ‘A’.charCodeAt() + 1; ans = ans 26 + cur; } return ans; }; ``` | | —- |

20220419, 14min,first time

|
```javascript /**

  • @param {string} columnTitle
  • @return {number} / // 20:49 -> 21:03 var titleToNumber = function(columnTitle) { const obj = { ‘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, } let arr = columnTitle.split(‘’); let sum = 0; let i = 0; while(arr.length > 0) { sum += obj[arr.pop()] (26 i); i++; } return sum; }; ``` 执行用时:72 ms, 在所有 JavaScript 提交中击败了57.17%的用户
    内存消耗:
    42.9 MB, 在所有 JavaScript 提交中击败了9.46%的用户
    通过测试用例:
    1002 / 1002**

改进
字符与数字的对应关系可以用charCodeAt()算出来,而不是用单独的对象维护```javascript /**

  • @param {string} columnTitle
  • @return {number} / var titleToNumber = function(columnTitle) { let arr = columnTitle.split(‘’); let sum = 0; let i = 0; while(arr.length > 0) { const n = arr.pop().charCodeAt() - ‘A’.charCodeAt() + 1; sum += n (26 ** i); i++; } return sum; }; ``` | | —- |