Python程式設計題22--只出現一次的數字
阿新 • • 發佈:2021-10-28
題目
給定一個非空整數列表,除了某個元素只出現一次以外,其餘每個元素均出現兩次。在不使用程式語言的內建函式前提下,請找出那個只出現了一次的元素。
例如:
給定一個列表:[4, 1, 2, 1, 2],返回結果:4
給定一個列表:[2, 2, 1],返回結果:1
實現思路
- 通過
位運算
來實現,設定一個返回值res,預設值為0 - 遍歷列表元素,每次均與res進行異或運算
- 列表中只有1個元素出現一次,其餘元素均出現兩次,相同元素異或的結果為0,所以最終的結果res就是這個只出現一次的元素
在二進位制的異或運算中,例如a=12,b=7,那麼a異或b的結果c計算如下:
a = 0 0 0 0 1 1 0 0
b = 0 0 0 0 0 1 1 1
c = 0 0 0 0 1 0 1 1 (相同位的值為0,不同為1)所以我們可以看出:0異或任一個數a,其結果為 a;任一數a異或自己,也就是 a異或a,其結果為 0
程式碼實現
def singleNumber(nums):
res = 0
for num in nums:
res = res ^ num
return res
作者:wintest
出處:https://www.cnblogs.com/wintest
本文版權歸作者和部落格園共有,歡迎轉載,但必須在文章頁面明顯位置給出原文連結,並保留此段宣告,否則保留追究法律責任的權利。