add: 220220-CN [golang]
This commit is contained in:
parent
cdb4eb86a3
commit
705d3e255f
|
|
@ -0,0 +1,27 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
func isOneBitCharacter(bits []int) bool {
|
||||||
|
var n = len(bits)
|
||||||
|
if n == 1 || bits[n-2] == 0 {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
// try applying codes from front to rear
|
||||||
|
vis := make([]bool, n)
|
||||||
|
vis[0] = true
|
||||||
|
for i := 0; i < n-2; i++ {
|
||||||
|
if !vis[i] {
|
||||||
|
continue
|
||||||
|
} else if bits[i] == 0 {
|
||||||
|
vis[1+i] = true
|
||||||
|
} else { // bits[i] == 1
|
||||||
|
vis[2+i] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return !vis[n-2]
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
fmt.Println(isOneBitCharacter([]int{1, 1, 1, 0}))
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue