全国软件设计大赛--求出一个二进制串中连续的1或连续的0出现的最大次数

全国软件设计大赛--求出一个二进制串中连续的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;
	}
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值