给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。
例如:
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
示例 1:
输入:columnNumber = 1
输出:"A"
示例 2:
输入:columnNumber = 28
输出:"AB"
示例 3:
输入:columnNumber = 701
输出:"ZY"
示例 4:
输入:columnNumber = 2147483647
输出:"FXSHRXW"
提示:
- 1 <= columnNumber <= 2^31 – 1
解题:
func convertToTitle(columnNumber int) string {
var r []byte
for columnNumber > 0 {
tmp := columnNumber % 26
if tmp == 0 {
columnNumber -= 26
tmp = 26
}
r = append([]byte{byte(tmp) + 64}, r...)
columnNumber /= 26
}
return string(r)
}
官方解答:
1.数学
func convertToTitle(columnNumber int) string {
var ans []byte
for columnNumber > 0 {
a0 := (columnNumber-1)%26 + 1
ans = append(ans, 'A'+byte(a0-1))
columnNumber = (columnNumber - a0) / 26
}
for i, n := 0, len(ans); i < n/2; i++ {
ans[i], ans[n-1-i] = ans[n-1-i], ans[i]
}
return string(ans)
}
简化
func convertToTitle(columnNumber int) string {
var ans []byte
for columnNumber > 0 {
columnNumber--
ans = append(ans, 'A'+byte(columnNumber%26))
columnNumber /= 26
}
for i, n := 0, len(ans); i < n/2; i++ {
ans[i], ans[n-1-i] = ans[n-1-i], ans[i]
}
return string(ans)
}