Dada una array arr[] de N elementos, la tarea es verificar si la array tiene un elemento que es igual al XOR de todos los elementos restantes.
Ejemplos:
Entrada: arr[] = { 8, 2, 4, 15, 1 }
Salida: Sí
8 es el elemento requerido como 2 ^ 4 ^ 15 ^ 1 = 8.
Entrada: arr[] = {4, 2, 3}
Salida : No
Enfoque: primero, tome el XOR de todos los elementos de la array y guárdelo en una variable xorArr . Ahora recorra la array completa nuevamente y para cada elemento, calcule el xor de los elementos de la array excluyendo el elemento actual arr[i], es decir , x = xorArr ^ arr[i] .
Si x = arr[i] entonces arr[i] es el elemento requerido y por lo tanto imprime Yes . Si no se encuentra dicho elemento , imprima No.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the approach #include <bits/stdc++.h> 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[0]); if (containsElement(arr, n)) cout << "Yes"; else cout << "No"; return 0; }
Java
// 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
# 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#
// 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
Javascript
<script> // JavaScript implementation of the approach // Function that returns true if the array // contains an element which is equal to // the XOR of the remaining elements function containsElement(arr, n) { // To store the XOR of all // the array elements let xorArr = 0; for (let i = 0; i < n; ++i) xorArr ^= arr[i]; // For every element of the array for (let i = 0; i < n; ++i) { // Take the XOR after excluding // the current element let 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 let arr = [ 8, 2, 4, 15, 1 ]; let n = arr.length; if (containsElement(arr, n)) document.write("Yes"); else document.write("No"); // This code is contributed by Surbhi Tyagi. </script>
Yes
Publicación traducida automáticamente
Artículo escrito por NikhilRathor y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA