2024/07/18

LeetCode 71. Excel Sheet Column Number

問題:給定一個字符串 columnTitle,它表示 Excel 表中的列標題,返回其對應的列號。

例如:

A -> 1
B -> 2
C -> 3
... Z -> 26
AA -> 27
AB -> 28
...
/**
 * 將 Excel 列標題轉換為數字
 * @param {string} columnTitle - Excel 列標題
 * @return {number} - 對應的數字
 */
var titleToNumber = function (columnTitle) {
    // 檢查輸入的長度是否在 1 到 7 之間
    if (columnTitle.length < 1 || columnTitle.length > 7) {
        return 0;
    }

    // 初始化結果變量 sum 和指數變量 exp
    let sum = 0;
    let exp = 0;

    // 從字符串的最後一位開始遍歷
    for (let i = columnTitle.length - 1; i >= 0; i--) {
        // 將字符轉換為對應的數字,A 對應 1,B 對應 2,依此類推
        let charValue = columnTitle.charCodeAt(i) - 64;
        // 計算該字符對應的數字值,並加到 sum 中
        sum += charValue * Math.pow(26, exp++);
    }

    // 返回最終計算結果
    return sum;
};