1009. 十进制整数的反码
大约 1 分钟
1009. 十进制整数的反码
- 标签:位运算
- 难度:简单
题目链接
题目大意
描述:给定一个十进制数 。
要求:返回其二进制表示的反码对应的十进制整数。
说明:
- 。
示例:
- 示例 1:
输入:5
输出:2
解释:5 的二进制表示为 "101",其二进制反码为 "010",也就是十进制中的 2 。
- 示例 2:
输入:7
输出:0
解释:7 的二进制表示为 "111",其二进制反码为 "000",也就是十进制中的 0 。
解题思路
思路 1:模拟
- 将十进制数 转为二进制 。
- 遍历二进制 的每一个数位 。
- 如果 为 ,则将其转为 ,存入答案 中。
- 如果 为 ,则将其转为 ,存入答案 中。
- 返回答案 。
思路 1:代码
class Solution:
def bitwiseComplement(self, n: int) -> int:
binary = ""
while n:
binary += str(n % 2)
n //= 2
if binary == "":
binary = "0"
else:
binary = binary[::-1]
res = 0
for digit in binary:
if digit == '0':
res = res * 2 + 1
else:
res = res * 2
return res
思路 1:复杂度分析
- 时间复杂度:,其中 为 对应二进制的长度。
- 空间复杂度:。