কম্পিউটার

C++ এ N বাইনারি স্ট্রিং এর Bitwise OR


এই সমস্যায়, আমাদের বাইনারি স্ট্রিংগুলির n আকারের একটি অ্যারে বিন [] দেওয়া হয়েছে। আমাদের কাজ হল n বাইনারি স্ট্রিংগুলির Bitwise OR (&) খুঁজে বের করার জন্য একটি প্রোগ্রাম তৈরি করা।

এখানে, আমরা সমস্ত সংখ্যা নেব এবং বিটওয়াইজ খুঁজে বের করব এবং তাদের মধ্যে যেমন বিন[0] | বিন[1] |... বিন[n-2] | বিন [এন]

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট

bin[] = {“1001”, “11001”, “010101”}

আউটপুট

011101

ব্যাখ্যা − বিটওয়াইজ বা সমস্ত বাইনারি স্ট্রিং-

(1001) | (11001) | (010101) = 011101

এই সমস্যাটি সমাধান করার জন্য, আমরা কেবলমাত্র সর্বাধিক সংখ্যক বিট (সর্বোচ্চ দৈর্ঘ্যের স্ট্রিং) সহ স্ট্রিংটি খুঁজে পাব। তারপর আমরা সমস্ত স্ট্রিং-এ পর্যাপ্ত সংখ্যক লিডিং 0 যোগ করব। তারপর বিটগুলির Bitwise OR খুঁজুন।

অ্যালগরিদম -

এর কাজ দেখানোর জন্য একটি উদাহরণ নেওয়া যাক
bin[] = {“1101”, “011010” , “00111”}

দৈর্ঘ্য 6 সহ সর্বাধিক দৈর্ঘ্যের স্ট্রিং হল 011010। তাই, আমরা অন্যান্য স্ট্রিংগুলিতে অগ্রণী 0 যুক্ত করব।

আপডেট করা স্ট্রিং − “001101”, “011010”, “000111”।

BITWISE বা সমস্ত স্ট্রিং- 001101 | 011010 | 000111 =011111

উদাহরণ

আমাদের সমাধান −

এর কাজ চিত্রিত করার জন্য প্রোগ্রাম
#include <bits/stdc++.h>
using namespace std;
string bitwiseOR(string* bin, int n){
   string result;
   int max_size = INT_MIN;
   for (int i = 0; i < n; i++) {
      max_size = max(max_size, (int)bin[i].size());
      reverse(bin[i].begin(), bin[i].end());
   }
   for (int i = 0; i < n; i++) {
      string s;
      for (int j = 0; j < max_size - bin[i].size(); j++) s += '0';
      bin[i] = bin[i] + s;
   }
   for (int i = 0; i < max_size; i++) {
      int insertBit = 0;
      for (int j = 0; j < n; j++)
      insertBit = insertBit | (bin[j][i] - '0');
      result += (insertBit + '0');
   }
   reverse(result.begin(), result.end());
   return result;
}
int main() {
   string bin[] = { "1101", "011010", "00111" };
   int n = sizeof(bin) / sizeof(bin[0]);
   cout<<"The bitwise OR of all the binary String of the string array is "<<bitwiseOR(bin, n);
   return 0;
}

আউটপুট

The bitwise OR of all the binary String of the string array is 011111

  1. C++ এ সংযুক্ত স্ট্রিংগুলিকে বিভক্ত করুন

  2. C++ এ স্ট্রিং থেকে বাইনারি ট্রি তৈরি করুন

  3. C++ এ ন্যূনতম স্ট্রিং

  4. C++ এ দুটি বাইনারি স্ট্রিং যোগ করার জন্য প্রোগ্রাম