Excel表列名称
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;
}
}