In this Leetcode Reverse Bits problem solution, we need to Reverse bits of a given 32 bits unsigned integer.

Leetcode Reverse Bits problem solution


Problem solution in Python.

class Solution:
    # @param n, an integer
    # @return an integer
    def reverseBits(self, n):
        reversed_n = 0
        for i in range(32):
            reversed_n = reversed_n << 1 | ((n >> i) & 1)
        return reversed_n



Problem solution in Java.

public class Solution {
    public int reverseBits(int n) {
        Integer j=31;
        Integer i=0;
        Integer val = n;
        while(i<j){
            if(((val>>i)&1)!=((val>>j)&1)){
                val^=((1<<i)|(1<<j));
            }
            ++i;
            --j;
        }
        return val;
    }
}


Problem solution in C++.

class Solution {
public:
    uint32_t reverseBits(uint32_t n) {
        string s;
        while(n!=0)
        {
            s+=to_string(n%2);
            n/=2;
        }
        
        string temp(32-s.size(),0);
        s+=temp;
        //cout<<s<<endl;
        uint32_t r=0;
        for(int i=s.size()-1;i>=0;i--)
        {
            if(s[i]=='1')
                r+=pow(2,s.size()-i-1);;
 
        }
        
        return r;
    }
};


Problem solution in C.

uint32_t reverseBits(uint32_t n) {

uint32_t revern;

if (n == 0)
{
    return revern=0;
}
else
{
for(int i =0; i<32; i++)
{
   if (n&(1<<i))
   {
     revern=revern+(0x80000000>>i);
   }
}

return revern;
}
}