0
点赞
收藏
分享

微信扫一扫

每日一题-868. 二进制间距_Python

就是耍帅 2022-04-24 阅读 107
leetcode
  • 给定一个正整数 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)))
        
举报

相关推荐

0 条评论