求最大连续bit数

题目描述

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

输入描述:

输入一个byte数字

输出描述:

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

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


 1 import java.util.*;
 2 
 3 public class Main{
 4     public static void main(String[] args) {
 5         Scanner sc = new Scanner(System.in);
 6         while (sc.hasNext()) {
 7             int n = sc.nextInt();
 8             String s = Integer.toBinaryString(n);
 9             int j = 0,max = 0;
10             for(int i = 0;i < s.length();i++){
11                 if(s.charAt(i) == '1')
12                     j = i + 1;
13                 while (j < s.length() && s.charAt(j)=='1'){
14                     j++;// i到j-1为数字
15                 }
16                 if (j - i > max) 
17                     max = j - i;
18             }
19             System.out.println(max);
20         }
21     }        
22 } 
View Code

找到了一种 计算字符串中最长某串的方法

posted @ 2016-08-17 16:51  蛋蛋的守护  阅读(240)  评论(0)    收藏  举报