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); } }