Golang:
思路:这题有点诡异,理解很好理解,可以当作一个二十六进制的转换,比如,701=26*251+25*260,当然,再举一个例子,如果是260呢?就不是260=10*261+0*260,而应该是260=9*261+26*260
代码如下:
func convertToTitle(n int) string {
imap:=make(map[int]byte)
for i:=1; i<=26; i++ {
imap[i]=byte('A'+i-1)
}
if n==0 {
return ""
}
var res []byte
for{
if n%26!=0 {
res=append(res, imap[n%26])
n=n/26
}else{
res=append(res, 'Z')
n=n/26-1
}
if n==0 {
break
}
}
swapBytes(res,0,len(res)-1)
result:=string(res)
return result
}
func swapBytes(arr []byte,i int,j int){
for i<j {
arr[i],arr[j]=arr[j],arr[i]
i++
j--
}
}
有疑问加站长微信联系(非本文作者)