এই সমস্যায়, আমাদের একটি বাইনারি স্ট্রিং দেওয়া হয়। আমাদের কাজ হল মোট সংখ্যা গণনা করা যাতে আমরা একটি উপাদান অপসারণ করতে পারি যেমন XOR শূন্য হয়ে যায়।
সমস্যাটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক,
ইনপুট
n = 11010
আউটপুট
3
এই সমস্যাটি সমাধান করার জন্য, আমাদের যুক্তি প্রয়োজন যে যদি 1 এর সংখ্যাটিও হয় তবে স্ট্রিংয়ের XOR হবে 0, অন্যথায়, আমাদের স্ট্রিং থেকে একটি 1 সরাতে হবে। আমরা XOR-কে প্রভাবিত না করেই যেকোন 0's মুছে ফেলতে পারি।
আমাদের সমাধানের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম,
উদাহরণ
#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