下列代码求出一个二进制串中连续的1或连续的0出现的最大次数。请填缺失代码。

2014-11-03 06:30:01 阅读( 26 )

2221人 收藏本页

标签:Java面试题

例如:s = “101100111100011”
则返回:4
又例如:s=”0111100000”
则返回:5
public static int getMaxContinuity(String s)
{
int max_1 = 0;
int max_0 = 0;
int n_1 = 0; // 当前1连续的次数
int n_0 = 0; // 当前0连续的次数

for(int i=0; i<s.length(); i++)
{
if(s.charAt(i)==’0′)
{
n_0++;
n_1=0;
//当前加的是0连续的次数的变量,就让1连续的次数的变量变为初值
}
else
{
n_1++;
n_0=0;
}

if(n_1 > max_1) max_1 = n_1;
if(n_0 > max_0) max_0 = n_0;
}

return max_1>max_0? max_1 : max_0);
}

来自IT公司面试手册

下一篇:下列代码把16进制表示的串转换为3进制表示的串。试完善之。

上一篇:Java代码填空题

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息: 面试题