কম্পিউটার

C++ এ বাইনারি স্ট্রিং-এ এমনকি দশমিক মানের সাবস্ট্রিং গণনা করা


আমাদের শুধুমাত্র 0 এবং 1 এর একটি স্ট্রিং দেওয়া হয়েছে৷ স্ট্রিংটি বাম থেকে ডানে পড়া একটি বাইনারি সংখ্যা উপস্থাপন করে। অর্থাৎ 001 হল 4 এবং 1 নয়। লক্ষ্য হল এমন সব সাবস্ট্রিং খুঁজে বের করা যা একটি জোড় দশমিক সংখ্যার প্রতিনিধিত্ব করে।

আমরা সকল সাবস্ট্রিং এর প্রথম মান পরীক্ষা করে এটি করব, যদি এটি 0 হয় তাহলে সংখ্যাটি 1 হলে সংখ্যাটি বিজোড় হবে। এই sbstr[0]='0’ সহ সমস্ত সাবস্ট্রিং-এর হিসাবে দৈর্ঘ্য-i দ্বারা গণনা বৃদ্ধি করা হবে এমনকি দশমিকে।

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

ইনপুট − str=”101”

আউটপুট − বাইনারি স্ট্রিং-এ এমনকি দশমিক মানের সাবস্ট্রিংয়ের সংখ্যা হল − 2

ব্যাখ্যা − সম্ভাব্য সাবস্ট্রিংগুলি হল:10, 11, 01, 0, 1 যার মধ্যে 01 হল 2 এবং 0 হল 0, 2টি জোড়৷

ইনপুট − str="111"

আউটপুট − একটি বাইনারি স্ট্রিং-এ এমনকি দশমিক মানের সাবস্ট্রিংয়ের সংখ্যা হল − 0

ব্যাখ্যা − সাবস্ট্রিংগুলি সম্ভব হল − 11,1 যার মধ্যে একটিও সমান নয়৷

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • আমরা একটি স্ট্রিং স্ট্রিং নিই শুধুমাত্র 0 এবং 1 হিসাবে।

  • str এর দৈর্ঘ্য len=str.length()

    এ সংরক্ষণ করুন
  • ফাংশন count_even(string str, int length) স্ট্রিং এবং এর দৈর্ঘ্য নেয় এবং একটি জোড় দশমিক সংখ্যা গঠন করে এমন সাবস্ট্রিংগুলির গণনা প্রদান করে।

  • FOR লুপ ব্যবহার করে ট্র্যাভার্স স্ট্রিং

  • সূচী i=0 থেকে শুরু করে i

  • যদি কোনো str[i]==’0’ মানে এটি থেকে শুরু হওয়া সমস্ত সাবস্ট্রিং এমনকি দশমিকে হবে।

  • দৈর্ঘ্য-i হিসাবে বৃদ্ধি গণনা।

  • ফলাফল হিসাবে রিটার্ন গণনা।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int count_even(string str, int length){
   int count = 0;
   for (int i = 0; i < length; i++){
      if (str[i] == '0'){
         count += (length - i);
      }
   }
   return count;
}
int main(){
   string str = "00111";
   int len = str.length();
   cout<<"Count of even decimal value substrings in a binary string are: "<<count_even(str, len) << endl;
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
Count of even decimal value substrings in a binary string are: 9

  1. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

  2. C++ এ বাইনারি ট্রিতে সর্বাধিক মূল্যের শিকড় গণনা করা হচ্ছে

  3. C++ এ একটি স্ট্রিং বাইনারি অনুসন্ধান করুন

  4. C++ এ বাইনারি থেকে দশমিক রূপান্তরের জন্য প্রোগ্রাম