美文网首页
03_颠倒二进制位

03_颠倒二进制位

作者: butters001 | 来源:发表于2019-11-06 11:43 被阅读0次
    class Solution:
        # @param n, an integer
        # @return an integer
        def reverseBits(self, n):
            n = bin(n)[2:]
            # 因为是32位 所以长度不够要在前面补0
            for i in range(32-len(n)):
                n = '0' + n
            reverse = n[::-1]
            return int('0b' + reverse, 2)
    
    
    # leetcode 最优解
    class Solution2:
        # @param n, an integer
        # @return an integer
        def reverseBits(self, n):
            r = 0
            for i in range(32):
                tmp = ((n >> 1) << 1) ^ n
                if tmp == 1:
                    r = (r << 1) + 1
                else:
                    r = r << 1
                n = n >> 1
            return r
    
    

    相关文章

      网友评论

          本文标题:03_颠倒二进制位

          本文链接:https://www.haomeiwen.com/subject/tvcubctx.html