'''
This problem was recently asked by Facebook:

Given a list of numbers, where every number shows up twice except for one number, find that one number.

Example:
Input: [4, 3, 2, 4, 1, 3, 2]
Output: 1

Time: O(n)
'''

def singleNumber(nums):
    dup = 0
    for num in nums:
        dup = dup ^ num
    return dup

print(singleNumber([4, 3, 2, 4, 1, 3, 2]))
# 1