Matt Zheng

number-complement

題目

將 bit 讀下來並做0、1互換
由於讀取時是從尾端讀取,最後計算答案時是要從後往前回推

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution:
def findComplement(self, num: int) -> int:
mask = 1
ans = 0
data = []
while num > 0:
data.append(0 if (num & mask) else 1)
num = num >> 1
for i in range(len(data)-1, -1, -1):
ans += data[i]
ans = ans << 1

return ans >> 1