Python按位異或運算子^應用案例一則:查詢只出現一次的數字
問題描述:有一個整數列表,裡面有一個數字只出現了一次,而其他數字都出現了4次,要求查詢這個只出現了一次的數字。
思路要點:一個數字和自己異或一次會變成0。
參考程式碼:
import random
def onlyYou(lst):
r = lst[0]
for item
in lst[1:]:
r = r ^ item
return r
for i
in range(100000):
lst = random.sample(range(1000), 8)
lst = lst[:-1]*4 + lst[-1:]
random.shuffle(lst)
# 傳統套路
r = onlyYou(lst)
# reduce,函數語言程式設計
rr = reduce(lambda x,y:x^y, lst, 0)
if lst.count(r)!=1
or lst.count(rr)!=1:
print(lst)
print(r, rr)
執行後程序無輸出,說明思路和程式碼正確。
----------相關閱讀----------
----------喜大普奔----------
1、繼《Python程式設計基礎》(2017年9月第5次印刷)、《Python程式設計(第2版)
https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-14464369246.84.46f16db0roWfX4&id=557107249812&rn=339cbc9df2bac424664103917dedfbd2&abbucket=8&tbpm=3