স্ট্রিং S-এ 'A' (রেগাতা) এবং 'P' (শান্ত) আছে। প্রতিটি মিনিটে রেগাতা ছাত্র ডান পাশের শান্ত ছাত্রকে আঘাত করে এবং সেও রেগাতা হয়। শেষ ছাত্র কাউকে আঘাত করতে পারে না। কোনো নতুন ছাত্র রেগাতা না হওয়া পর্যন্ত মিনিট গণনা করুন।
উদাহরণ
S = "PPAPP" → আউটপুট: ২
১ মিনিট: "PPAAP", ২ মিনিট: "PPAAA", তারপর কেউ রেগাতা হয় না।
সমাধানের ধাপসমূহ
ডান পাশ থেকে বাম দিকে স্ক্যান করুন। 'P' পেলে কাউন্ট বাড়ান, 'A' পেলে ম্যাক্স আপডেট করে কাউন্ট ০ করুন। ফাইনাল ম্যাক্সই উত্তর।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int solve(string S) {
int n = S.size();
int ans = 0, cnt = 0;
for (int i = n - 1; i >= 0; i--) {
if (S[i] == 'P') cnt++;
else { ans = max(ans, cnt); cnt = 0; }
}
return ans;
}
int main() {
string S = "PPAPP";
cout << solve(S) << endl;
return 0;
}
ইনপুট
PPAPP
আউটপুট
2