Number Complement

1. Title
476. Number Complement
2. Http address
https://leetcode.com/problems/number-complement/?tab=Description
3. The question
Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.

Note:

    The given integer is guaranteed to fit within the range of a 32-bit signed integer.
    You could assume no leading zero bit in the integer’s binary representation.

Example 1:

Input: 5
Output: 2
Explanation: The binary representation of 5 is 101 (no leading zero bits), and its complement is 010. So you need to output 2.

Example 2:

Input: 1
Output: 0
Explanation: The binary representation of 1 is 1 (no leading zero bits), and its complement is 0. So you need to output 0.

4. Code

public class Solution {
    public int findComplement(int num) {
        
        String numBits = Integer.toBinaryString(num);
        StringBuffer sb = new StringBuffer();
        
        int len = numBits.length();
        int i = 0;
        while( i < len)
        {
            if( numBits.charAt(i) == '0'){
                sb.append("1");
            }else{
                sb.append("0");
            }
            i++;
        }
        
        return Integer.parseInt(sb.toString(), 2);
    }
}

 

posted @ 2017-03-07 17:09  ordi  阅读(118)  评论(0编辑  收藏  举报