LeetCode) 190. Reverse Bits

유병수·2023년 5월 25일
0

190. Reverse Bits

n을 일의 자리수부터 1 &로 비트 연산을 한다.1이라면 1을 0이라면 0을 StringBuilder에 차례대로 append 해준다. 그러면 순서가 뒤집히게 되는데, 32자리 수이기 때문에 32보다 길이가 짧다면 나머지를 0으로 채워준뒤, 10진법으로 바꿔주면 정답

public class Solution {
    // you need treat n as an unsigned value
    public int reverseBits(int n) {

        StringBuilder sb = new StringBuilder();

        while(n != 0){

            if((n & 1) == 1){
                sb.append(1);
            }else{
                sb.append(0);
            }

            n >>>= 1;
        }

        String textNum = sb.toString();

        if(sb.length() < 32){
            for(int i = 0; i < 32 - sb.length(); i++){
                textNum += "0";
            }
        }

        return (int) Long.parseLong(textNum,2);
    }
}

0개의 댓글