[leetcode] 190. Reverse Bits解題レポート


タイトルリンク:https://leetcode.com/problems/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?
構想:変数resultを申請して結果を保存し、左に1ビットずつ移動させ、nを右に1ビットまたは操作することで、毎回nの最低ビットを得ることができる.
コードは次のとおりです.
class Solution {
public:
    uint32_t reverseBits(uint32_t n) {
        uint32_t result = 0;
        for(int i =0; i< 32; i++)
        {
            result = result<<1;
            result |= (n>>i)&1;
        }
        return result;
    }
};
参照:https://leetcode.com/discuss/77219/2ms-java-solution