কম্পিউটার টিউটোরিয়াল

C++ প্রোগ্রাম: রেগাতা ছাত্র না হলে মিনিট গণনা

স্ট্রিং 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
  1. C++-এ কতগুলো কীওয়ার্ড (keywords) আছে?

  2. C++ প্রোগ্রামিং কীভাবে শিখবেন?

  3. C++-এ একটি সিম্পল প্রোগ্রাম কীভাবে তৈরি করবেন?

  4. পাইথনে ফাইনাল রাউন্ডে জয় করতে পারা স্বিমার সংখ্যা বের করা