LeetCode168.Excel列表名称Golang实现
1. 题目描述
给定一个正整数,返回它在 Excel 表中相对应的列名称。
例如,
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
示例 1:
输入: 1
输出: “A”
示例 2:
输入: 28
输出: “AB”
示例 3:
输入: 701
输出: “ZY”
2. 思路
利用10进制转换为26进制的思想。
- 除留余数法,将结果加‘A’的ASCII码,存到append到byte切片中
注意不能直接 n % 26,因为不存在0,否则26就没办法转换为Z
这里不是存粹的26进制(并不是逢26进1,末位补0),逢26保留为Z - 将byte切片反转,强制转换为string类型,得到最终结果
3. 代码
func convertToTitle(n int) string {
if n <= 0 {
return ""
}
res := []byte{}
for n != 0 {
n--
pop := n % 26
temp := pop + 'A'
res = append(res,byte(temp))
n = n / 26
}
for i := 0; i < len(res) / 2; i++ {
res[i],res[len(res) - 1 - i] = res[len(res) - 1 - i],res[i]
}
return string(res)
}