Excel表列名称-leetcode


Excel表列名称

目录
  • 1. 地址
  • 2. 思路
  • 3. 代码

1. 地址

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

2. 思路

进制转换的题目,但是对边界条件的处理并不是很好想
这题我看了题解:
https://leetcode-cn.com/problems/excel-sheet-column-title/solution/shi-jin-zhi-zhuan-26jin-zhi-by-powcai/
这个讲的比较明白,也是符合人直觉的答案
其他的 n -= 1 说实话,我根据推论能看出来是对的,但是,如果让我再做一遍,我估计还是想不出来。

3. 代码


class Solution {

    /**
     * @param Integer $n
     * @return String
     */
    function convertToTitle($n) {
        $ret = "";
        
        if ($n <= 0) {
            return $ret;
        }

        // 进制转换
        while ($n > 0) {
            $mod = $n % 26;
            $n = floor($n / 26);
            if ($mod == 0) {
                $n -= 1;
                $mod = 26;
            }
            $ret = chr(64 + $mod) . $ret;
            // echo ($n % 26)."-- ".PHP_EOL;
            // $ret .= $letters[$n % 26 - 1];
            // echo $n.PHP_EOL;
        }

        return $ret;
    }
}