Reverse Bits

2015.4.17 05:42

Reverse bits of a given 32 bits unsigned integer.

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

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

Related problem: Reverse Integer

Solution:

  Is this problem worthy enough to appear in an interview?

Accepted code:

 1 // 1AC, I'm beginning to doubt the quality of leetcode problem set...
 2 class Solution {
 3 public:
 4     uint32_t reverseBits(uint32_t n) {
 5         int i;
 6         uint32_t ans = 0;
 7         for (i = 0; i < sizeof(uint32_t) * 8; ++i) {
 8             ans = (ans << 1) | (n & 1);
 9             n >>= 1;
10         }
11         
12         return ans;
13     }
14 };

 

 posted on 2015-04-17 05:45  zhuli19901106  阅读(149)  评论(0编辑  收藏  举报