概述
一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请找出这两个只出现一次的数字。
# -*-coding:utf-8 -*-
class Solution:
def FindNumsAppearOnce(self, array):
# 如果两个数相同,那么这两个数的异或操作就等于0
if len(array) < 2:
return None
twoNumXor = None
for num in array:
if twoNumXor == None:
twoNumXor = num
else:
twoNumXor = twoNumXor ^ num
count = 0
while twoNumXor % 2 == 0:
twoNumXor = twoNumXor >> 1
count += 1
mask = 1 << count
firstNum = None
secondNum = None
for num in array:
if mask & num == 0:
if firstNum == None:
firstNum = num
else:
firstNum = firstNum ^ num
else:
if secondNum == None:
secondNum = num
else:
secondNum = secondNum ^ num
return firstNum, secondNum
if __name__ == '__main__':
array = [1, 2, 3, 1, 2, 3, 4, 7, 4, 8]
s = Solution()
print(s.FindNumsAppearOnce(array))
运行结果为:
(8, 7)
最后
以上就是满意秀发为你收集整理的Python 数组中只出现一次的数字的全部内容,希望文章能够帮你解决Python 数组中只出现一次的数字所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复