lc-go/solutions/15/q1545/solution.go
2026-03-13 16:18:54 +09:00

30 lines
512 B
Go

// Package q1545 implements a solution for https://leetcode.com/problems/find-kth-bit-in-nth-binary-string/
package q1545
var buf = make([]byte, 1<<20)
var bufLen = 1
func init() { buf[0] = '0' }
func generate() {
buf[bufLen] = '1'
newTail := bufLen * 2
for i := range bufLen {
switch buf[i] {
case '0':
buf[newTail-i] = '1'
case '1':
buf[newTail-i] = '0'
}
}
bufLen = newTail + 1
}
func findKthBit(n, k int) byte {
for bufLen < k {
generate()
}
return buf[k-1]
}
var _ = findKthBit