华为OJ——求最大连续bit数

题目描述

功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1
    
输入: 一个byte型的数字
    
输出: 无
     
返回: 对应的二进制数字中1的最大连续数


输入描述:

输入一个byte数字

输出描述:

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

输入例子:
3
输出例子:
2

最简单的方法:把二进制字符串用0来split称多个数组,输出长度最大的那个数组的长度就行了

import java.util.*;
public class Main{public static void main(String[] args) {Scanner scan=new Scanner(System.in);while(scan.hasNext()){int num=scan.nextInt();String str=Integer.toBinaryString(num);String[] strs=str.split("0");int max=0;for(int i=0;i<strs.length;i++){max=max<strs[i].length()?strs[i].length():max;}System.out.println(max);}}
}