Excel表列序号-leetcode 1. 地址 2. 思路

Excel表列序号

https://leetcode-cn.com/problems/excel-sheet-column-number/

2. 思路

代码即思路:

class Solution {
    /**
     * @param String $s
     * @return Integer
     */
    function titleToNumber($s) {
        if (empty($s)) {
            return 0;
        }

        // pow(26, x);
        $ret = 0;
        for ($i = 0; $i < strlen($s); $i++) {
            $val = ord($s[$i]) - 64;
            $ret += pow(26, strlen($s) - $i - 1) * $val;
            // echo $val.PHP_EOL;
            // echo $ret.PHP_EOL;
        }
        return $ret;
    }
}

本质上是 26 进制,所以从后往前算,每次乘以 26 即可

public int titleToNumber(String s) {
    char[] c = s.toCharArray();
    int res = 0;
    for (int i = 0; i < c.length; i++) {
        res = res * 26 + (c[i] - 'A' + 1);
    }
    return res;
}

作者:windliang
链接:https://leetcode-cn.com/problems/excel-sheet-column-number/solution/xiang-xi-tong-su-de-si-lu-fen-xi-duo-jie-fa-by-4-3/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。