题目如下:
Every non-negative integer
N
has a binary representation. For example,5
can be represented as"101"
in binary,11
as"1011"
in binary, and so on. Note that except forN = 0
, there are no leading zeroes in any binary representation.The complement of a binary representation is the number in binary you get when changing every
1
to a0
and0
to a1
. For example, the complement of"101"
in binary is"010"
in binary.For a given number
N
in base-10, return the complement of it's binary representation as a base-10 integer.Example 1:
Input: 5 Output: 2 Explanation: 5 is "101" in binary, with complement "010" in binary, which is 2 in base-10.
Example 2:
Input: 7 Output: 0 Explanation: 7 is "111" in binary, with complement "000" in binary, which is 0 in base-10.
Example 3:
Input: 10 Output: 5 Explanation: 10 is "1010" in binary, with complement "0101" in binary, which is 5 in base-10.
Note:
0 <= N < 10^9
解题思路:题目很简单,把Input转成二进制形式,然后对每一位取反,最后再转成十进制就可以了。
代码如下:
class Solution(object): def bitwiseComplement(self, N): """ :type N: int :rtype: int """ SN = bin(N)[2:] res = '' for i in SN: if i == '1': res += '0' continue res += '1' return int(res,2)