如何找到正数n内的二进制间隙。求出最大长度的二进制间隔数

问题描述 投票:-2回答:1
public int solution(int N) {
    string result ="";
    int MaxLength =0;
    while (N > 0) {
        int remainder = N%2;
        result = remainder.ToString() + result;
        N/=2;
    }

    if(result != ""){
        string [] strArr = result.Split('1');
        if(strArr.Length >2){
            foreach(string str in strArr){
                if(str.Length > MaxLength)
                    MaxLength = str.Length;
            }
        }
    }
    return MaxLength;
}

此代码返回正数内的二进制间隙的最大值。二进制间隙实际上是连续的零的最大序列,在N的二进制表示形式中,两端都被一个1包围。

public int solution(int N){字符串结果=“”; int MaxLength = 0;而(N> 0){int余数= N%2;结果=剩下的ToString()+结果; N / = 2; } ...

c#
1个回答
0
投票

此代码考虑了负数的高位,并且工作速度更快:)

© www.soinside.com 2019 - 2024. All rights reserved.