题解 | #求最大连续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); } } }