add new solutions

This commit is contained in:
Yiyang Kang 2026-03-21 14:44:38 +09:00
parent 7d2a6718b3
commit 1f0aa6d417
Signed by: kkyy
SSH key fingerprint: SHA256:lJSbAzC3MvrSORdvIVK6h/3g+rVKJNzM7zq0MgA9WKY
6 changed files with 258 additions and 0 deletions

View file

@ -0,0 +1,37 @@
// Package q1980 implements a solution for https://leetcode.com/problems/find-unique-binary-string/
package q1980
import "slices"
func toNumber(s string) int {
ret := 0
for i := range len(s) {
ret = ret<<1 + int(s[i]-'0')
}
return ret
}
func fromNumber(n, length int) string {
buf := make([]byte, length)
for i := range length {
buf[i] = byte(n&1) + '0'
n >>= 1
}
slices.Reverse(buf)
return string(buf)
}
func findDifferentBinaryString(nums []string) string {
slices.Sort(nums)
last := -1
for i := range nums {
num := toNumber(nums[i])
if num > last+1 {
break
}
last = num
}
return fromNumber(last+1, len(nums[0]))
}
var _ = findDifferentBinaryString