美文网首页Leetcode
Leetcode 190. Reverse Bits

Leetcode 190. Reverse Bits

作者: SnailTyan | 来源:发表于2018-09-04 20:32 被阅读1次

    文章作者:Tyan
    博客:noahsnail.com  |  CSDN  |  简书

    1. Description

    Reverse Bits

    2. Solution

    • Version 1
    class Solution {
    public:
        uint32_t reverseBits(uint32_t n) {
            int a[32] = {0};
            unsigned int result = 0;
            for(int i = 0; i < 32; i++) {
                a[i] = n & 1;
                n >>= 1;
            }
            unsigned int m = 1;
            for(int i = 31; i >= 0; i--) {
                result += a[i] * m;
                m <<= 1;
            }
            return result;
        }
    };
    
    • Version 2
    class Solution {
    public:
        uint32_t reverseBits(uint32_t n) {
            uint32_t x = 2147483648;
            uint32_t result = 0;
            while(n) {
                int temp = n & 1;
                result += temp * x;
                n >>= 1;
                x >>= 1;
            }
            return result;
        }
    };
    
    • Version 3
    class Solution {
    public:
        uint32_t reverseBits(uint32_t n) {
            uint32_t result = 0;
            for(int i = 0; i < 32; i++) {
                result <<= 1;
                result |= (n & 1);
                n >>= 1;
            }
            return result;
        }
    };
    
    • Version 4
    class Solution {
    public:
        uint32_t reverseBits(uint32_t n) {
            uint32_t result = 0;
            for(int i = 0; i < 32; i++) {
                result <<= 1;
                if(n & 1) {
                    result++;
                }
                n >>= 1;
            }
            return result;
        }
    };
    

    Reference

    1. https://leetcode.com/problems/reverse-bits/description/

    相关文章

      网友评论

        本文标题:Leetcode 190. Reverse Bits

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