leetcode刷题:Excel Sheet Column Title的PHP解法

it2022-05-05  142

给定一个正整数,返回它在 Excel 表中相对应的列名称。

例如,

    1 -> A     2 -> B     3 -> C     ...     26 -> Z     27 -> AA     28 -> AB      ... 示例 1:

输入: 1 输出: "A" 示例 2:

输入: 28 输出: "AB" 示例 3:

输入: 701 输出: "ZY"

解决思路

本质是26进制的转换,区别在于当余数为0时,应将余数设为26,高位减一

ifunction convertToTitle($n) { $num = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]; $letter = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']; $arr = []; while($n>0){ $sh = intval($n/26); $yu = $n&; if($yu==0){ $sh--; $yu = 26; } for($i=0; $i<26; $i++){ if($num[$i]==$yu){ array_unshift($arr, $letter[$i]); break; } } $n = $sh; } $str = implode($arr); return $str; }

最新回复(0)