一. 題目
題目給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。
示例
二. 方法一: 拼湊
解題思路
拼湊出取反後的二進位制數, 然後再轉成十進位制數
解題**
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 說明 我們有意將問題陳述地比較模糊。在實現 之前,你應當事先思考所有可能的情況。思路分析 這題幹給的不是一般的模糊,不要將什麼策略,擼起袖子就是幹!可以先嘗試一下,給一點個人提...