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; } ...
此代码考虑了负数的高位,并且工作速度更快:)