কম্পিউটার

C++ এ একটি বাইনারি স্ট্রিং "ab" বিনামূল্যে করার জন্য অপারেশনের সংখ্যা


আমাদের একটি স্ট্রিং দেওয়া হয়েছে যাতে "ab" থাকতে পারে এবং কাজটি হল স্ট্রিং থেকে "ab" অপসারণ বা মুছে ফেলার জন্য প্রয়োজনীয় ক্রিয়াকলাপগুলির গণনা করা। সুতরাং, আমাদের কাজ হল প্রথমে স্ট্রিংটিতে “ab” আছে কিনা তা পরীক্ষা করা যদি হ্যাঁ তাহলে আমাদের স্ট্রিংকে “ab” ফ্রি করতে হবে।

ইনপুট − string str ="ababaa"

আউটপুট − একটি বাইনারি স্ট্রিং "ab" মুক্ত করার জন্য অপারেশনের সংখ্যা হল −4

ব্যাখ্যা −যেমন আমরা স্ট্রিং এ দেখতে পাচ্ছি “ab” প্যাটার্নটি দুইবার হচ্ছে তাই আমরা “ab” কে “bba” দিয়ে প্রতিস্থাপন করব তাই অপারেশনের সংখ্যা 1 এবং এখন স্ট্রিংটি bbaabaa। আবার, আমরা "ab" কে "bba" দিয়ে প্রতিস্থাপন করব তাই অপারেশনের সংখ্যা 2 এবং এখন স্ট্রিংটি bbabbaaa। আমাদের আরও একটি "ab" আছে তাই অপারেশনের সংখ্যা 3 এবং এখন স্ট্রিংটি bbabbaaa। যেহেতু আমরা পরীক্ষা করা "ab" কে "bba" দিয়ে প্রতিস্থাপন করতে থাকি স্ট্রিংটি "ab" মুক্ত হয়ে যাবে।

ইনপুট − str ="abaa"

আউটপুট − একটি বাইনারি স্ট্রিং "ab" মুক্ত করার জন্য অপারেশনের সংখ্যা হল − 1

ব্যাখ্যা − যেমন আমরা স্ট্রিংটিতে দেখতে পাচ্ছি “ab” প্যাটার্নটি এক সময় ঘটছে তাই আমরা “ab” কে “bba” দিয়ে প্রতিস্থাপন করব তাই অপারেশনের সংখ্যা 1 এবং এখন স্ট্রিংটি bbaaa। এখন, স্ট্রিংটি "ab" বিনামূল্যে এবং গণনা হল 1।

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

  • একটি স্ট্রিং ইনপুট করুন এবং একটি স্ট্রিংয়ের দৈর্ঘ্য গণনা করুন এবং আরও প্রক্রিয়াকরণের জন্য ফাংশনে ডেটা প্রেরণ করুন৷

  • স্ট্রিং "ab" মুক্ত করার জন্য প্রয়োজনীয় ক্রিয়াকলাপগুলি সংরক্ষণ করতে একটি অস্থায়ী পরিবর্তনশীল গণনা ঘোষণা করুন৷

  • স্ট্রিং দৈর্ঘ্য + 1

    আকারের একটি অক্ষর অ্যারে তৈরি করুন
  • strcpy() পদ্ধতি ব্যবহার করে একটি অ্যারেতে স্ট্রিংয়ের অক্ষর সংরক্ষণ করুন।

  • স্টার্ট লুপ ফর 0 থেকে একটি স্ট্রিং এর দৈর্ঘ্য পর্যন্ত

  • লুপের ভিতরে, IF arr[দৈর্ঘ্য - i - 1] ='a' চেক করুন তারপর কাউন্ট + 0 হিসাবে গণনা সেট করুন এবং মোট পরিবর্তনশীলকে মোট * 2 হিসাবে সেট করুন

  • অন্যথায়, মোটের জন্য গণনা 1 দ্বারা বৃদ্ধি করুন।

  • গণনা ফেরত দিন

  • ফলাফল প্রিন্ট করুন।

উদাহরণ

#include<bits/stdc++.h>
using namespace std;
int operations_ab_free(string str, int len){
   int count = 0;
   char arr[length + 1];
   strcpy(arr, str.c_str());
   int total = 0;
   for (int i = 0; i < len; i++){
      if (arr[len - i - 1] == 'a'){
         count = (count + total);
         total = (total * 2);
      }
      else{
         total++;
      }
   }
   return count;
}
int main(){
   string str = "ababaa";
   int length = str.length();
   cout<<"Count of operations to make a binary string “ab” free are: "<<operations_ab_free(str,
length)<<endl;
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
Count of operations to make a binary string “ab” free are: 4

  1. C++ এ বাইনারি ম্যাট্রিক্সকে শূন্য ম্যাট্রিক্সে রূপান্তর করতে অপারেশনের সংখ্যা গণনা করার প্রোগ্রাম

  2. C++ এ একটি প্রদত্ত স্ট্রিং-এ শব্দ গণনা করুন

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

  4. C++ এ h উচ্চতার সুষম বাইনারি গাছ গণনা করুন