add new solutions
This commit is contained in:
parent
f249852923
commit
f297e11859
10 changed files with 373 additions and 0 deletions
30
solutions/15/q1545/solution.go
Normal file
30
solutions/15/q1545/solution.go
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
// 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue