इस समस्या में हमें एक बाइनरी स्ट्रिंग दी जाती है। हमारा काम उन तरीकों की कुल संख्या को गिनना है जिनसे हम एक तत्व को हटा सकते हैं जैसे कि XOR शून्य हो जाता है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
n = 11010
आउटपुट
3
इस समस्या को हल करने के लिए, हमें इस तर्क की आवश्यकता है कि यदि 1 की संख्या सम है तो स्ट्रिंग का XOR 0 होगा, अन्यथा, हमें स्ट्रिंग से 1 को निकालने की आवश्यकता है। हम XOR को प्रभावित किए बिना किसी भी संख्या में 0 को हटा सकते हैं।
हमारे समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम,
उदाहरण
#include<iostream> #include<string.h> using namespace std; int wayXorZero(string binaryString){ int oneCount = 0, zeroCount = 0; int n = binaryString.length(); for (int i = 0; i < n; i++) if (binaryString[i] == '1') oneCount++; else zeroCount++; if (oneCount % 2 == 0) return zeroCount; return oneCount; } int main(){ string binaryString = "10110100"; cout<<"Number of ways to make XOR zero is "<<wayXorZero(binaryString); return 0; }
आउटपुट
Number of ways to make XOR zero is 4