面试题 05.03. 翻转数位

给定一个32位整数 num,你可以将一个数位从0变为1。请编写一个程序,找出你能够获得的最长的一串1的长度。

示例 1:

输入: num = 1775(110111011112)
输出: 8
示例 2:

输入: num = 7(01112)
输出: 4

参考代码:

class Solution:
    def reverseBits(self, num: int):
        v = []
        a = bin(num).replace("0b", '')
        if set(a) == {'1'}:
            return len(a)+1
        for i in range(len(a.split('0'))-1):
            v.append(len(a.split('0')[i])+len(a.split('0')[i+1]))
        return max(v)+1
posted @ 2020-03-14 01:47  HackerEarl  阅读(81)  评论(0编辑  收藏  举报