-
给定一个正整数 n,找到并返回 n 的二进制表示中两个 相邻 1 之间的 最长距离 。如果不存在两个相邻的 1,返回 0 。
-
如果只有 0 将两个 1 分隔开(可能不存在 0 ),则认为这两个 1 彼此 相邻 。两个 1 之间的距离是它们的二进制表示中位置的绝对差。例如,“1001” 中的两个 1 的距离为 3 。
示例 1:
示例 2:
示例 3:
提示:
- 1 <= n <= 10^9
程序代码
class Solution:
def binaryGap(self, n: int) -> int:
n = str(bin(n))[2:]
index = []
for i in range(len(n)):
if n[i] == '1':
index.append(i)
if len(index) < 2:
return 0
return max(index[i] -index[i-1] for i in range(1, len(index)))