Gidhub BE Developer

LeetCode : 190. Reverse Bits

2020-12-12
goodGid

190. Reverse Bits

Problem

Reverse bits of a given 32 bits unsigned integer.

Example

Input: n = 00000010100101000001111010011100
Output:    964176192 (00111001011110000010100101000000)
Explanation: The input binary string 00000010100101000001111010011100 represents the unsigned integer 43261596, so return 964176192 which its binary representation is 00111001011110000010100101000000.

[1] Code (20. 12. 12)

class Solution {
    public int reverseBits(int n) {
        int ans = 0;

        for (int i = 0; i < 32; i++) {
            ans <<= 1;
            ans += (n & 1);
            n >>= 1;
        }
        
        return ans;
    }
}
  • Simple is Best
n의 1번째 자리 = ans의 n번째 자리
n의 2번째 자리 = ans의 n-1번째 자리
n의 n번째 자리 = ans의 n-(n-1)번째 자리

[2] Code (20. 12. 12)

public class Solution {
    public int reverseBits(int n) {
        int ans = 0;

        for (int i = 0; i < 32; i++) {
            int temp = 0;
            if ((n & (1 << i)) != 0) {
                temp = (1 << 31 - i);
            }
            ans |= temp;
        }

        return ans;
    }
}
  • Simple is Best
n의 1번째 자리 = ans의 n번째 자리
n의 2번째 자리 = ans의 n-1번째 자리
n의 n번째 자리 = ans의 n-(n-1)번째 자리

Reference


Recommend

Index