如何找到二进制数中连续一个的最大数量?

时间:2017-08-13 13:03:31

标签: java

我试图找到二进制字符串中连续一个的最大数量。

输入:67

预期输出:2

我的输出:7

说明:二进制文件中的671000011,因此输出应为2.但我将7作为输出。有人可以指出错误吗?

以下是代码:

public class Test{
    static int getMax(int n)
    {
        String bin = Integer.toBinaryString(n);
        char[] arr = bin.toCharArray();
        int count = 0;
        int result = 0;
        for(int i=0; i < arr.length; i++)
        {
            if(arr[i]==0)
            {
                count = 0;
            }
            else
            {
                count++;
                result=Math.max(result,count);
            }
        }
        return result;
    }
    public static void main(String args[])
    {
         System.out.println(getMax(67));
    }
}

2 个答案:

答案 0 :(得分:-1)

将if条件更改为.. 如果(arr.charAt(I)== '0')

答案 1 :(得分:-2)

除了错误的条件(if (arr[i] == 0)应为if (arr[i] == '0'))之外,您不需要在循环中每次计算最大

祝你好运!