# Check if the array has an element which is equal to XOR of remaining elements

Given an array arr[] of N elements, the task is to check if the array has an element which is equal to the XOR of all the remaining elements.

Examples:

Input: arr[] = { 8, 2, 4, 15, 1 }
Output: Yes
8 is the required element as 2 ^ 4 ^ 15 ^ 1 = 8.

Input: arr[] = {4, 2, 3}
Output: No

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: First, take the XOR of all the elements of the array and store it in a variable xorArr. Now traverse the complete array again and for every element, calculate the xor of the array elements excluding the current element arr[i] i.e. x = xorArr ^ arr[i].
If x = arr[i] then arr[i] is the required element and hence print Yes. If no such element is found then print No.

Below is the implementation of the above approach:

 `// C++ implementation of the approach ` `#include ` `using` `namespace` `std; ` ` `  `// Function that returns true if the array ` `// contains an element which is equal to ` `// the XOR of the remaining elements ` `bool` `containsElement(``int` `arr[], ``int` `n) ` `{ ` ` `  `    ``// To store the XOR of all ` `    ``// the array elements ` `    ``int` `xorArr = 0; ` `    ``for` `(``int` `i = 0; i < n; ++i) ` `        ``xorArr ^= arr[i]; ` ` `  `    ``// For every element of the array ` `    ``for` `(``int` `i = 0; i < n; ++i) { ` ` `  `        ``// Take the XOR after excluding ` `        ``// the current element ` `        ``int` `x = xorArr ^ arr[i]; ` ` `  `        ``// If the XOR of the remaining elements ` `        ``// is equal to the current element ` `        ``if` `(arr[i] == x) ` `            ``return` `true``; ` `    ``} ` ` `  `    ``// If no such element is found ` `    ``return` `false``; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `arr[] = { 8, 2, 4, 15, 1 }; ` `    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr); ` ` `  `    ``if` `(containsElement(arr, n)) ` `        ``cout << ``"Yes"``; ` `    ``else` `        ``cout << ``"No"``; ` ` `  `    ``return` `0; ` `} `

 `// Java implementation of the approach ` `class` `GFG ` `{ ` `     `  `// Function that returns true if the array ` `// contains an element which is equal to ` `// the XOR of the remaining elements ` `static` `boolean` `containsElement(``int` `[] arr, ``int` `n) ` `{ ` ` `  `    ``// To store the XOR of all ` `    ``// the array elements ` `    ``int` `xorArr = ``0``; ` `    ``for` `(``int` `i = ``0``; i < n; ++i) ` `        ``xorArr ^= arr[i]; ` ` `  `    ``// For every element of the array ` `    ``for` `(``int` `i = ``0``; i < n; ++i)  ` `    ``{ ` ` `  `        ``// Take the XOR after excluding ` `        ``// the current element ` `        ``int` `x = xorArr ^ arr[i]; ` ` `  `        ``// If the XOR of the remaining elements ` `        ``// is equal to the current element ` `        ``if` `(arr[i] == x) ` `            ``return` `true``; ` `    ``} ` ` `  `    ``// If no such element is found ` `    ``return` `false``; ` `} ` ` `  `// Driver code ` `public` `static` `void` `main (String[] args)  ` `{ ` `    ``int` `[] arr = { ``8``, ``2``, ``4``, ``15``, ``1` `}; ` `    ``int` `n = arr.length; ` ` `  `    ``if` `(containsElement(arr, n)) ` `        ``System.out.println(``"Yes"``); ` `    ``else` `        ``System.out.println(``"No"``); ` `} ` `} ` ` `  `// This code is contributed by ihritik `

 `# Python3 implementation of the approach ` ` `  `# Function that returns true if the array ` `# contains an element which is equal to ` `# the XOR of the remaining elements ` `def` `containsElement(arr, n): ` ` `  `    ``# To store the XOR of all ` `    ``# the array elements ` `    ``xorArr ``=` `0` `    ``for` `i ``in` `range``(n): ` `        ``xorArr ^``=` `arr[i] ` ` `  `    ``# For every element of the array ` `    ``for` `i ``in` `range``(n): ` ` `  `        ``# Take the XOR after excluding ` `        ``# the current element ` `        ``x ``=` `xorArr ^ arr[i] ` ` `  `        ``# If the XOR of the remaining elements ` `        ``# is equal to the current element ` `        ``if` `(arr[i] ``=``=` `x): ` `            ``return` `True` ` `  `    ``# If no such element is found ` `    ``return` `False` ` `  `# Driver Code ` `arr ``=` `[``8``, ``2``, ``4``, ``15``, ``1``] ` `n ``=` `len``(arr) ` ` `  `if` `(containsElement(arr, n)): ` `    ``print``(``"Yes"``) ` `else``: ` `    ``print``(``"No"``) ` ` `  `# This code is contributed by Mohit Kumar `

 `// C# implementation of the approach ` `using` `System; ` `class` `GFG ` `{ ` `     `  `// Function that returns true if the array ` `// contains an element which is equal to ` `// the XOR of the remaining elements ` `static` `bool` `containsElement(``int` `[] arr, ``int` `n) ` `{ ` ` `  `    ``// To store the XOR of all ` `    ``// the array elements ` `    ``int` `xorArr = 0; ` `    ``for` `(``int` `i = 0; i < n; ++i) ` `        ``xorArr ^= arr[i]; ` ` `  `    ``// For every element of the array ` `    ``for` `(``int` `i = 0; i < n; ++i)  ` `    ``{ ` ` `  `        ``// Take the XOR after excluding ` `        ``// the current element ` `        ``int` `x = xorArr ^ arr[i]; ` ` `  `        ``// If the XOR of the remaining elements ` `        ``// is equal to the current element ` `        ``if` `(arr[i] == x) ` `            ``return` `true``; ` `    ``} ` ` `  `    ``// If no such element is found ` `    ``return` `false``; ` `} ` ` `  `// Driver code ` `public` `static` `void` `Main ()  ` `{ ` `    ``int` `[] arr = { 8, 2, 4, 15, 1 }; ` `    ``int` `n = arr.Length; ` ` `  `    ``if` `(containsElement(arr, n)) ` `        ``Console.WriteLine(``"Yes"``); ` `    ``else` `        ``Console.WriteLine(``"No"``); ` `} ` `} ` ` `  `// This code is contributed by ihritik `

Output:
```Yes
```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

Article Tags :
Practice Tags :