LeetCode0476 數字的補數

2021-10-09 04:54:10 字數 862 閱讀 6295

一. 題目

題目給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。

示例

二. 方法一: 拼湊

解題思路

拼湊出取反後的二進位制數, 然後再轉成十進位制數

解題**

def

findcomplement

(self, num:

int)

->

int:

res =

"0b"

for ele in

bin(num)[2

:]: res +=

"0"if ele ==

"1"else

"1" result =

int(res,2)

return result

分析三. 方法二

解題思路

分析可知:取反後的數值等於相同長度滿數字1的二進位制數 - 當前數值

解題**

def

findcomplement

(self, num:

int)

->

int:

# 獲取二進位制數的長度

size =

len(

bin(num))-

2# 相同長度滿數字1的二進位制數 - 當前數值

res =

2** size -

1- num

return res

分析

數字的補數(LeetCode)

給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。注意 給定的整數保證在32位帶符號整數的範圍內。你可以假定二進位制數不包含前導零位。示例 1 輸入 5輸出 2解釋 5的二進位制表示為101 沒有前導零位 其補數為010。所以你需要輸出2。示例 2 輸入 1輸出 0解釋 1的二進位制表示...

LEETCODE 數字回文

判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121輸出 true示例 2 輸入 121輸出 false解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10輸出 false解釋 從右向左讀,為 01...

LeetCode 有效數字

驗證給定的字串是否為數字。例如 0 true 0.1 true abc false 1 a false 2e10 true 說明 我們有意將問題陳述地比較模糊。在實現 之前,你應當事先思考所有可能的情況。思路分析 這題幹給的不是一般的模糊,不要將什麼策略,擼起袖子就是幹!可以先嘗試一下,給一點個人提...