কম্পিউটার

C++ এ 1 এবং 0 এর সমান সংখ্যা সহ সাবয়ারে গণনা করুন


আমাদেরকে একটি অ্যারে দেওয়া হয়েছে [] যার মধ্যে শুধুমাত্র 0 এবং 1 রয়েছে। লক্ষ্য হল arr[]-এর সমস্ত সাব্যারে গণনা করা যাতে 0s এবং 1s-এর ঘটনা সব মিলিয়ে সমান হয়। যদি অ্যারেটি [1,0,0] হয়। সাবারে শুধুমাত্র [1,0] হবে।

আসুন উদাহরণ দিয়ে বুঝতে পারি।

ইনপুট − arr[] ={ 0, 0, 1, 1, 1, 0 };

আউটপুট − 1 এবং 0 এর সমান সংখ্যা সহ সাবয়ারের সংখ্যা হল − 4

ব্যাখ্যা − সুবারায় −

হবে
arr[0 to 3] = [0,0,1,1],
arr[1 to 2] = [0,1],
arr[4 to 5] =[1,0],
Arr[0 to 5] =[0,0,1,1,1,0].

ইনপুট − arr[] ={ 0, 1, 1, 1, 1 };

আউটপুট − 1 এবং 0 এর সমান সংখ্যা সহ সাবয়ারের সংখ্যা হল − 1

ব্যাখ্যা − সুবারায় − arr[0 থেকে 1] =[0,1]

হবে

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ

আমরা সম্ভাব্য সমস্ত সাব্যারে তৈরি করতে টু লুপ ব্যবহার করে অ্যারেটি অতিক্রম করব। i=0 থেকে i<=size-1 এবং j=i থেকে j<=size-1। গঠিত সাব্যারেগুলি হবে arr[i] থেকে arr[j] এর মধ্যে। প্রতিটি সাবয়ারে 0 এবং 1 এর ফ্রিকোয়েন্সি গণনা করুন। সমান হলে গণনা বৃদ্ধি করুন।

  • সংখ্যার একটি অ্যারে অ্যারে নিন।

  • ফাংশন sub_zeroes_ones(int arr[], int size) অ্যারে নেয় এবং সমান সংখ্যা সহ সাবয়ারের গণনা প্রদান করে। 0 এবং 1 এর মধ্যে।

  • 0 হিসাবে প্রাথমিক গণনা নিন।

  • আমরা i=0 থেকে i<=size-1 এবং j=0 থেকে j<=size-1 পর্যন্ত লুপের জন্য দুটি ব্যবহার করে অ্যারেটি অতিক্রম করব।

  • মোট_0 দুটি ভেরিয়েবল নিন, 0 এর সংখ্যার জন্য 0 হিসাবে total_1 এবং 1 এর সাবঅ্যারে অ্যারে [i] থেকে arr[j]।

  • 0 এবং 1 এর সাথে arr[j] তুলনা করুন। যদি arr[j] 0 বা 1 হয় তাহলে সংশ্লিষ্ট গণনা বৃদ্ধি করুন ( total_0 বা total_1)।

  • মোট_0==মোট_1 হলে। বৃদ্ধির সংখ্যা। (সাব্যারেতে উপাদান হিসাবে 0 এবং 1 এর সমান সংখ্যা রয়েছে)।

  • উভয় লুপের শেষে, ফলাফল হিসাবে গণনা করুন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int sub_zeroes_ones(int arr[], int size){
   int count = 0;
   for (int i = 0; i <= size - 1; i++){
      int total_0 = 0;
      int total_1 = 0;
      for (int j = i; j <= size - 1; j++){
         if (arr[j] == 0){
            total_0++;
         }
         else if (arr[j] == 1){
            total_1++;
         }
         if(total_0 == total_1){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int arr[] = {0, 1, 1, 0, 0};
   int size = sizeof(arr)/sizeof(arr[0]);
   cout<<"Count of subarrays with equal number of 1’s and 0’s are: "<<sub_zeroes_ones(arr, size);
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Count of subarrays with equal number of 1’s and 0’s are: 4

  1. C++ এ অনুমোদিত অনুলিপি সহ প্রদত্ত সংখ্যার সমান পণ্য সহ ট্রিপলেটের সংখ্যা গণনা করুন

  2. C++-এ Bitwise এবং Equal to Zero সহ তিনগুণ

  3. C++ এ বাউন্ডেড ম্যাক্সিমাম সহ সাবাররে সংখ্যা

  4. C++-এ চমৎকার সাবরে-এর সংখ্যা গণনা করুন