题解 | #求最大连续bit数#转换成字符串方法
求最大连续bit数
https://www.nowcoder.com/practice/4b1658fd8ffb4217bc3b7e85a38cfaf2
package main
import (
"fmt"
)
func main() {
// 接收输入转变成二进制字符串
var num int
fmt.Scan(&num)
input:=fmt.Sprintf("%b", num)
// fmt.Println(input)
// 循环遍历一下
res,tem:=0,0
for _,v:=range input{
// 遇到1,就让临时计数+1
if v=='1'{
tem++
// fmt.Println(ret,tem)
}
// 遇到0,判断一下临时计数和当前结果那个大,选大的给结果赋值
// 然后清零临时计数
if v=='0'{
if res<tem{
res=tem
}
tem=0
// fmt.Println(res,tem)
}
}
// 但是还有一个问题,如果转换成的二进制字符串都是1,那就走不到v==0的部分
// 这样的话res永远是0,而tem也不会清零,所以我们要做一个最后的判断
if res<tem{
res=tem
}
fmt.Println(res)
}
查看16道真题和解析
