## Description

https://leetcode.com/problems/number-complement/

Given a **positive** integer `num`

, output its complement number. The complement strategy is to flip the bits of its binary representation.

**Example 1:**

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.

**Example 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.

**Constraints:**

- 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/

## Explanation

Find the binary string and then convert it to complement number’s binary string. Finally convert back to 10 base integer.

## Python Solution

```
class Solution:
def findComplement(self, num: int) -> int:
binary = bin(num)[2:]
result = ""
for bit in binary:
if bit == "1":
result += "0"
else:
result += "1"
return int(result, 2)
```

- Time Complexity: O(N).
- Space Complexity: O(N).