• 868. Binary Gap


    Given a positive integer N, find and return the longest distance between two consecutive 1's in the binary representation of N.

    If there aren't two consecutive 1's, return 0.

    Example 1:

    Input: 22
    Output: 2
    Explanation:
    22 in binary is 0b10110.
    In the binary representation of 22, there are three ones, and two consecutive pairs of 1's.
    The first consecutive pair of 1's have distance 2.
    The second consecutive pair of 1's have distance 1.
    The answer is the largest of these two distances, which is 2.

    Example 2:

    Input: 5
    Output: 2
    Explanation:
    5 in binary is 0b101.

    Example 3:

    Input: 6
    Output: 1
    Explanation:
    6 in binary is 0b110.

    Example 4:

    Input: 8
    Output: 0
    Explanation:
    8 in binary is 0b1000.
    There aren't any consecutive pairs of 1's in the binary representation of 8, so we return 0.

    Note:

    • 1 <= N <= 10^9
    class Solution:
        def binaryGap(self, N):
            """
            :type N: int
            :rtype: int
            """
            s = bin(N)
            temp = []
            for i in range(len(s)):
                if s[i]=='1':
                    temp.append(i)
            # print(temp)
            if len(temp)<=1:
                return 0
            res = 0
            for i in range(len(temp)-1):
                res = max(res,temp[i+1]-temp[i])
            return res
    
  • 相关阅读:
    c++中ctype常用函数总结(isprint isblank..)
    c++的const总结(转)
    c++重载输入输出运算符
    c++中的友元重载
    c++函数模板二栈实现
    c++函数模板1
    c++中IO输入输出流总结<二>
    c++中IO输入输出流总结<一>
    四层与七层得区别(转)
    ORACLE操作
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/9831074.html
Copyright © 2020-2023  润新知