Leetcode Note: Go - Excel Sheet Column Title
Excel Sheet Column Title - LeetCode
https://leetcode.com/problems/excel-sheet-column-title/
- Go 言語で取り組んだメモ
所感
- 与えられた数値をアルファベットに変換する
- 数値を変換する式が組めれば出来そう
回答
0ms Golang solution - LeetCode Discuss
https://leetcode.com/problems/excel-sheet-column-title/discuss/51479/0ms-Golang-solution
const ALPHABETS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
func reverse(b []byte){
for i, j := 0, len(b)-1; i < j; i, j = i + 1, j - 1{
b[i] , b [j] = b[j], b[i]
}
}
func convertToTitle(n int) string {
var b []byte
for ; n > 0; n = (n - 1) / 26 {
b = append(b, ALPHABETS[(n - 1) % 26])
}
reverse(b)
return string(b)
}
- for ループの書き方で、カウンターを 2つ 定義するやりかた新鮮
- 一見複雑だが for ループを2重にするより効率的
- アルファベットは全26種類で固定なので 26 で除算したものをスライスに格納していき、反転して return すれば良い
- この for ループの書き方も面白い
- シンプルにインクリメントかデクリメントするだけでなく、ループ条件は指定できる