題目
難度:★☆☆☆☆
類型:數(shù)學(xué)
給定一個正整數(shù),輸出它的補數(shù)。補數(shù)是對該數(shù)的二進制表示取反。
注意:
給定的整數(shù)保證在32位帶符號整數(shù)的范圍內(nèi)。
你可以假定二進制數(shù)不包含前導(dǎo)零位。
示例
示例 1:
輸入: 5
輸出: 2
解釋: 5的二進制表示為101(沒有前導(dǎo)零位),其補數(shù)為010。所以你需要輸出2。
示例 2:
輸入: 1
輸出: 0
解釋: 1的二進制表示為1(沒有前導(dǎo)零位),其補數(shù)為0。所以你需要輸出0。
解答
這道題很簡單,只需要將數(shù)字轉(zhuǎn)為二進制,再將二進制各位取反并轉(zhuǎn)回十進制即可。
class Solution:
def findComplement(self, num: int) -> int:
return int(''.join('1' if c == '0' else '0' for c in bin(num)[2:]), 2)
如有疑問或建議,歡迎評論區(qū)留言~