int Solution::singleNumber(const vector &A) {

int result=0;

for(int i=0;i<=A.size()-1;i++)

{

result=result^A[i];

}

return result;

}

# XOR property in 3 lines

**spider34**#2

def singleNumber( self,A):

A = sorted(A)

i = 0

while i<len(A)-1:

if(A[i]==A[i+1]):

i+=2

else:

return A[i]

return A[len(A)-1]

Above code runs good. but i am lil confused how XOR operator computes.

Ex. in every iteration it would produce weird result if result and A[i] is not same(i.e. result^A[i] won’t be zero). it might be some different number other than elements of array itself.

please clarify how XOR works on all element of array. is it one by one or in associative manner

**9m9fx8pej4**#4

It is because of xor’s associative property. so, as A^(B^C)=(A^B)^C when a number is repeated it can be paired with itself.