প্রদত্ত টাস্ক হল একটি স্ট্রিং থেকে প্রদত্ত অনুসৃতির সর্বোচ্চ সংখ্যক অপসারণ খুঁজে বের করা। অ্যাস্ট্রিং 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