এই সমস্যায়, আমাদের একটি বাইনারি স্ট্রিং দেওয়া আছে। আমাদের কাজ হল মোট পদ্ধতির সংখ্যা গণনা করা যাতে আমরা একটি উপাদান সরিয়ে XOR শূন্য করতে পারি।
একটি উদাহরণ নিয়ে সমস্যাটি বুঝি,
ইনপুট
n = 11010
আউটপুট
3
এই সমস্যাটি সমাধান করতে, আমাদের লজিকটি জানতে হবে যে যদি ১-এর সংখ্যা জোড় হয় তবে স্ট্রিং-এর XOR হবে ০, অন্যথায়, আমাদের স্ট্রিং থেকে একটি ১ সরিয়ে দিতে হবে। আমরা ০-এর যেকোনো সংখ্যা সরিয়ে দিতে পারি XOR-কে প্রভাবিত না করে।
আমাদের সমাধানের বাস্তবায়ন দেখানোর প্রোগ্রাম,
উদাহরণ
#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<<"XOR শূন্য করার পদ্ধতির সংখ্যা "<<wayXorZero(binaryString); return 0; }
আউটপুট
XOR শূন্য করার পদ্ধতির সংখ্যা 4