全国软件设计大赛--求出一个二进制串中连续的1或连续的0出现的最大次数
下列代码求出一个二进制串中连续的1或连续的0出现的最大次数。请填缺失代码。
例如: s = “ 101100111100011 ”则返回: 4
又例如: s= ” 0111100000 ”
则返回: 5
public static int getMaxContinuity(String s)
{
intmax_1 = 0;
intmax_0 = 0;
int n_1= 0; // 当前 1 连续的次数
int n_0= 0; // 当前 0 连续的次数
for(inti=0; i<s.length(); i++)
{
if(s.charAt(i)=='0')
{
n_0++;
________;
}
else
{
n_1++;
_________;
}
if(n_1 > max_1) max_1 = n_1;
if(n_0 > max_0) max_0 = n_0;
}
returnmax_1>max_0? max_1 : max_0);
}
完整代码:
public class maxContinuity
{
public static void main(String args[])
{
String a="101100111100011";
System.out.println(maxContinuity(a));
}
public static int maxContinuity(String s)
{
int max_1=0;
int max_0=0;
int n_1=0;
int n_0=0;
for(int i=0;i<s.length();i++)
{
if(s.charAt(i)=='0')//当取出的字符是0的话就将0连续的次数的变量加1
{
n_0++;
n_1=0;
}
else if(s.charAt(i)=='1')
{
n_1++;
n_0=0;
}
if(n_0>max_0)
{
max_0=n_0;
}
if(n_1>max_1)
{
max_1=n_1;
}
}
return max_0>max_1?max_0:max_1;
}
}