如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1)
运用范围:找列表中只出现一次的数
例子一:找到列表中只出现一次的值
def Count_Once(lst):
res = 0
for i in lst:
res^=i
return res
print(Count_Once([2,2,1]))
例子二:找出两个列表的唯一不同元素
def findTheDifference(s, t):
ch = 0
for i in (t+s):
ch ^= ord(i)
return chr(ch)
s = "abcd"
t = "abcde"
print(findTheDifference(s,t))
print(findTheDifference("a","aa"))
例子三:找出列表中缺失的数字
def missingNumber(s):
a = list(range(len(s)+1))
ret = list(set(a)^set(s))
return ret[0]
print(missingNumber([0,2,4,1]))
print(missingNumber([3,0,1]))
print(missingNumber([9,6,4,2,3,5,7,0,1]))
print(missingNumber([0]))