目标
给定一个非负整数,创建一个函数,该函数返回该整数的二进制值中最大的连续1的个数的起始位置。
得到输入后0
,返回0
。
如果数字具有多个等长的条纹,则必须返回最后一个条纹的位置。
输入值
大于或等于 0 的整数。
输出量
整数,如下所述。
规则
- 这是代码高尔夫球,因此每种语言中以字节为单位的最短代码为准。
- 禁止出现标准漏洞。
示例和测试用例
例子1
- 您的函数传递整数142
- 142等于二进制的10001110
- 最长条纹是“ 111”(三个条纹)
- 条纹从2 ^ 1位置开始
- 您的函数返回1作为结果
例子2
- 您的函数被传递给整数48
- 48等于110000的二进制
- 最长条纹是“ 11”(两个条纹)
- 条纹从2 ^ 4位置开始
- 您的函数返回4作为结果
例子3
- 您的函数被传递给整数750
- 750等于二进制的1011101110
- 最长条纹是“ 111”(三个条纹)
- 由于存在两个等长的条纹,因此我们返回后面的条纹。
- 以后的条纹开始于2 ^ 5位置
- 您的函数返回5作为结果
0
。那是一个重要的测试案例。