题解 | #求最大连续bit数#
求最大连续bit数
http://www.nowcoder.com/practice/4b1658fd8ffb4217bc3b7e85a38cfaf2
描述
求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1
本题含有多组样例输入。
输入描述:
输入一个byte数字
输出描述:
输出转成二进制之后连续1的个数;
本题解题思路就在如何快速转化成二进制,同时能把1都集中起来,因此想到用字符串分割0,这样连续的1就能在一起,同时只要求字符串数组中,最长的那串
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
String str = Integer.toBinaryString(n);
String[] arr =str.split("0");
int max=0;
for(String s :arr){
max=s.length()>max?s.length():max;
}
System.out.println(max);
}
}
}
查看12道真题和解析