Given a **positive** integer num, output its complement number. The complement strategy is to flip the bits of its binary representation.

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

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

- The given integer num is guaranteed to fit within the range of a 32-bit signed integer.
- num >= 1
- You could assume no leading zero bit in the integer’s binary representation.
- This question is the same as 1009: https://leetcode.com/problems/complement-of-base-10-integer/

Solution:

class Solution { public int findComplement(int num) { String s = Integer.toBinaryString(num); int n = 0; for (int i = 0; i < s.length(); i ++) { int curr = 1 - (s.charAt(i) - '0'); if (curr == 1) { n += (int) Math.pow(2, s.length() - 1 - i); } } return n; } }