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

সি++ কোড: সব অপারেশনের পর ন্যূনতম পাথর বের করুন

একটি স্ট্রিং S দেওয়া আছে যার ক্যারেক্টারগুলো '+' বা '-'। একটি পাথরের পাইল আছে, nবার আমরা বা একটা পাথর তুলব বা একটা পাথর যোগ করব। পাইল খালি না থাকা শর্তে পাথর তুলা হয়। S[i] = '-' মানে i-তম অপারেশনে পাথর তুলা হয়েছে, '+' মানে যোগ করা হয়েছে। সব অপারেশনের পর পাইলেও থাকা ন্যূনতম পাথর সংখ্যা বের করতে হবে।

উদাহরণ

S = "++-++" → আউটপুট: 3
ব্যাখ্যা: শুরুতে ০ পাথর থাকলে অপারেশনগুলো করলে শেষে ৩টি পাথর থাকবে।

সমাধানের ধাপসমূহ

n := S-এর সাইজ
res := 0
for i := 0 to n-1:
    res := (S[i] == '-') ? max(res - 1, 0) : res + 1
return res

সি++ কোড উদাহরণ

#include <bits/stdc++.h>
using namespace std;

int solve(string S) {
    int n = S.size(), res = 0;
    for (int i = 0; i < n; i++)
        res = (S[i] == '-') ? max(res - 1, 0) : res + 1;
    return res;
}

int main() {
    string S = "++-++";
    cout << solve(S) << endl;
}

ইনপুট

"++-++"

আউটপুট

3
  1. সব কাজ শেষ করার জন্য ন্যূনতম গতি খুঁজে বের করা C++-এ

  2. C++-এ একটি অ্যারে সুন্দর बनाने के জন্য ন্যূনতম অপারেশন খুঁজুন

  3. সি++-এ ডিজিট স্ট্রিং থেকে সব সম্ভাব্য বৈধ IP অ্যাড্রেস জেনারেট করা

  4. সব বই কেনার ন্যূনতম খরচ বের করা C++-তে