Skip to content

Commit dbbd993

Browse files
committedMay 3, 2016
Add excel-sheet-column-title
1 parent 2e0c05d commit dbbd993

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
 

‎excel-sheet-column-title.go

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
)
6+
7+
func convertToTitle(n int) string {
8+
m := make(map[int]rune)
9+
for i := 0; i < 26; i++ {
10+
m[i+1] = rune('A' + i)
11+
}
12+
slice := []rune{}
13+
if n <= 26 {
14+
return string(m[n])
15+
}
16+
for ; n > 0; n /= 26 {
17+
if n%26 == 0 {
18+
slice = append(slice, m[26])
19+
n -= 26
20+
for n > 0 && n <= 26 {
21+
n /= 26
22+
if n > 0 {
23+
slice = append(slice, m[n])
24+
}
25+
}
26+
} else {
27+
slice = append(slice, m[n%26])
28+
}
29+
}
30+
31+
sliceLen := len(slice)
32+
for i, j := 0, sliceLen-1; i < j; i, j = i+1, j-1 {
33+
slice[i], slice[j] = slice[j], slice[i]
34+
}
35+
return string(slice)
36+
}
37+
38+
func main() {
39+
// fmt.Println("26= ", convertToTitle(26))
40+
// fmt.Println("27= ", convertToTitle(27))
41+
// fmt.Println("28= ", convertToTitle(28))
42+
// fmt.Println("52= ", convertToTitle(52))
43+
// fmt.Println("701= ", convertToTitle(701))
44+
fmt.Println("702= ", convertToTitle(702))
45+
}

0 commit comments

Comments
 (0)