题目及链接
描述
给出N个数字。其中仅有一个数字出现过一次,其他数字均出现过两次,找出这个出现且只出现过一次的数字。要求时间和空间复杂度最小。
输入
输入多个数字,每个数字以空格分开。数字数量 N < 20,输入数字的最大值小于 256.
输出
输出内容为只出现过唯一一次的数字
输入样例
10 10 11 12 12 11 16
输出样例
16
链接: 找出单独出现的数.
思路
异或(^):相同的结果会得到全0;和全0异或,结果不变;和全1异或,结果会得到自己的取反。
代码
# 此处可 import 模块
"""
@param string line 为单行测试数据
@return string 处理后的结果
"""
def solution(line):
# 缩进请使用 4 个空格,遵循 PEP8 规范
# please write your code here
num = line.strip().split()
#strip()是用来去除line首尾的空格
#split()是使用空格对line进行划分
k = 0
for i in num:
k ^= int(i)
# return 'your_answer'
return k