我试图找到二进制字符串中连续一个的最大数量。
输入:67
预期输出:2
我的输出:7
说明:二进制文件中的67
为1000011
,因此输出应为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));
}
}
答案 0 :(得分:-1)
将if条件更改为.. 如果(arr.charAt(I)== '0')
答案 1 :(得分:-2)
除了错误的条件(if (arr[i] == 0)
应为if (arr[i] == '0')
)之外,您不需要在循环中每次计算最大。