边工作边刷题:70天一遍leetcode: day 3

Reverse Bits

思路:
错误点:& 没有>>/<<优先级高

Reverse bits of a given 32 bits unsigned integer.

For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as 00111001011110000010100101000000).

Follow up:
If this function is called many times, how would you optimize it?

Related problem: Reverse Integer

class Solution(object):
    def reverseBits(self, n):
        """
        :type n: int
        :rtype: int
        """
        i = 0
        j = 31
        while i<j:
            if ((n&(1<<i))>>i)!=((n&(1<<j))>>j):
                n=n^(1<<i)^(1<<j)
            i+=1
            j-=1
        
        return n
posted @ 2016-05-25 23:38  absolute100  阅读(115)  评论(0编辑  收藏  举报