首页 > 试题广场 >

求最大连续bit数

[编程题]求最大连续bit数
  • 热度指数:137524 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

求一个int类型数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1

数据范围:数据组数:
进阶:时间复杂度:,空间复杂度:

输入描述:

输入一个int类型数字



输出描述:

输出转成二进制之后连续1的个数

示例1

输入

200

输出

2

说明

200的二进制表示是11001000,最多有2个连续的1。  
头像 牛客290975006号
发表于 2021-09-24 17:09:40
split()一下之后用下set去掉多个分割出来的空值排个序就好了吧 while True: try: x = int(input()) byte_x = bin(x)[2:] list1 = sorted(list(set(byte_x.sp 展开全文
头像 牛客400911017号
发表于 2021-11-10 22:01:15
用函数转换二进制后,直接用0进行split,然后找到最大长度。 import java.util.Scanner; public class Main {     public static void main(String args[]) {     展开全文
头像 摸鱼学大师
发表于 2021-10-31 17:11:45
题目的主要信息: 求一个int类型数字对应的二进制数字中1的最大连续数 进阶要求:时间复杂度:O(log2n)O(log_2n)O(log2​n),空间复杂度:O(1)O(1)O(1) 方法一:连除法 具体做法: 将十进制转换成二进制的方法可以用连除取余法,那我们不断连除2,每次都取余2得到最后 展开全文
头像 不错就是对
发表于 2022-03-11 10:13:38
HJ86 求最大连续bit数 思路: step1:输入一个int型整数,并转为二进制数; step2:将二进制数转换为字符串形式; step3:对a的长度逐一遍历;从大到小开始对字符'1'相乘,如果在b中,直接打印并且break 代码如下: while True: try: 展开全文
头像 为什么机器不学习
发表于 2021-01-09 21:34:06
java直接用位运算&,用当前数字和1做“&”操作,如果结果是1,说明此时的二进制第一位为1,然后右移一位,直至数字为0。注意java的>>是有符号右移,也就是说,负数用>>右移的话,会在左侧补1而不是0,这就会影响最终对1的计数。所以这里我们要使用无符号右移 展开全文
头像 王琨琨
发表于 2021-11-10 15:15:18
#include<stdio.h> int main()  {     int n;     while (scanf("%d", &n)  展开全文
头像 江泽政
发表于 2021-11-11 14:13:57
Python3 解题思路 try: s = input() ## 数字格式-> 二元格式 -> 清除非数字 -> 零作为间隔符号 string = bin(int(s)).replace("0b", "").split("0" 展开全文
头像 青菜一号
发表于 2022-04-19 21:26:13
看起来没有用split()的精妙,但效率似乎更高。 while True: try: x=int(input()) str1=bin(x) count=0 max_count=0 for i in str1: 展开全文
头像 勇敢牛牛,害怕困难
发表于 2021-12-22 22:19:22
解题思路2:用0分割字符串,求分割后字符串的最大长度。 Pythonic while True: try: a = int(input()) b = str(bin(a)[2:]) c = b.split('0') l = [] 展开全文
头像 杰出的小新
发表于 2021-08-16 00:11:55
python 一行 while True: try: print(len(max(bin(int(input()))[2:].split('0'),key=len))) except: break

问题信息

难度:
592条回答 28230浏览

热门推荐

通过挑战的用户

查看代码