मान लीजिए हमारे पास n तत्वों की एक सरणी है; हमें सरणी में ऐसे कई जोड़े खोजने हैं जिनका XOR 0 होगा। युग्म (x, y) जिसका XOR 0 है, तो x =y है। इसे हल करने के लिए हम सरणी को सॉर्ट कर सकते हैं, फिर यदि दो लगातार तत्व समान हैं, तो गिनती बढ़ाएं। यदि सभी तत्व समान हैं, तो अंतिम गणना नहीं की जा सकती है। उस स्थिति में, हम जाँच करेंगे कि अंतिम और पहले तत्व समान हैं या नहीं, यदि समान हैं, तो गिनती को 1 से बढ़ाएँ।
उदाहरण
#include<iostream> #include<algorithm> using namespace std; int countPairs(int arr[], int n) { int count = 0; sort(arr, arr+n); for(int i = 0; i<n - 1; i++){ if(arr[i] == arr[i+1]){ count++; } } if(arr[0] == arr[n-1]) count++; return count; } int main() { int arr[] = {1, 2, 1, 2, 4}; int n = sizeof(arr)/sizeof(arr[0]); cout << "Number of pairs: " << countPairs(arr, n); }
आउटपुट
Number of pairs: 2