কম্পিউটার

C++ এ একটি স্ট্রিং থেকে প্রদত্ত অনুগামী অপসারণের সর্বাধিক সংখ্যা


প্রদত্ত টাস্ক হল একটি স্ট্রিং থেকে প্রদত্ত অনুসৃতির সর্বোচ্চ সংখ্যক অপসারণ খুঁজে বের করা। অ্যাস্ট্রিং s দেওয়া হয়েছে এবং আমাদের সর্বাধিক সংখ্যক অনুগামী 'abc' খুঁজে বের করতে হবে যা স্ট্রিং থেকে সরানো যেতে পারে।

আসুন এখন বুঝি একটি উদাহরণ ব্যবহার করে আমাদের কী করতে হবে:

ইনপুট

s = ‘dnabcxy’

আউটপুট

1

ব্যাখ্যা − প্রদত্ত স্ট্রিং ('dnabcxy') এ 'abc'-এর শুধুমাত্র একটি অনুগামী পাওয়া যাবে, তাই আউটপুট হল 1।

ইনপুট

s = ‘zcabcxabc’

আউটপুট

2 (‘zcabcxabc’)

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

  • Max() ফাংশনে ভেরিয়েবল শুরু করে i, a, ab, abc এর মান =0 এবং টাইপের int সহ।

  • i=0 থেকে I পর্যন্ত লুপ করুন

  • লুপের ভিতরে চেক করুন যদি (s[i] =='a'), যদি তাই হয় তাহলে a এর মান বৃদ্ধি করুন।

  • অন্যথায়, (s[i] ==‘b’), যদি সত্য হয় তাহলে আবার পরীক্ষা করুন যদি (a> 0)। যদি উভয় শর্তই সত্য হয় তাহলে a এর মান 1 দ্বারা কমান এবং ab এর মান বৃদ্ধি করুন।

  • সবশেষে, (s[i] ==‘c’), যদি সত্য হয় তাহলে আবার পরীক্ষা করুন (ab> 0) কিনা। যদি উভয় শর্তই সত্য হয় তাহলে ab-এর মান 1 দ্বারা হ্রাস করুন এবং abc-এর মান বৃদ্ধি করুন।

  • abc ফেরত দিন

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int Max(string s){
   int i=0, a=0, ab=0, abc=0;
   for (i = 0; i < s.length(); i++){
      if (s[i] == 'a'){
         a++;
      }
      else if (s[i] == 'b'){
         if (a > 0){
            a--;
            ab++;
         }
      }
      else if (s[i] == 'c'){
         if (ab > 0){
            ab--;
            abc++;
         }
      }
   }
   return abc;
}
//main function
int main(){
   string s = "zcabcxabc";
   cout << Max(s);
   return 0;
}

আউটপুট

2

  1. C++ এ প্রদত্ত পথ থেকে স্টপের ন্যূনতম সংখ্যা

  2. C++ এ অজানা পণ্যের প্রদত্ত পণ্য থেকে সর্বাধিক GCD

  3. C++ প্রোগ্রাম প্রদত্ত সংখ্যক বার একটি স্ট্রিং সংযুক্ত করতে?

  4. একটি প্রদত্ত স্ট্রিং-এর পারমুটেশনের সংখ্যা খুঁজে পেতে C++ প্রোগ্রাম