题
面试题 05.06. 整数转换
整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。
示例1:
输入:A = 29 (或者0b11101), B = 15(或者0b01111)
输出:2
示例2:
输入:A = 1,B = 2
输出:2
提示:
A,B范围在[-2147483648, 2147483647]之间
解题思路
此处撰写解题思路
代码
第一种 使用与
class Solution:
def convertInteger(self, A: int, B: int) -> int:
count = 0
for i in range(32):
test = 1 << i
count += 0 if test & A == test & B else 1
return count
第二种 推荐 使用异或
class Solution:
def convertInteger(self, A: int, B: int) -> int:
count = 0
diff = A ^ B
for i in range(32):
count += 1 if 1 << i & diff else 0
return count

1万+

被折叠的 条评论
为什么被折叠?



