কম্পিউটার

সমস্ত অপারেশনের পরে ন্যূনতম পাথর খুঁজে পেতে C++ কোড


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

সুতরাং, যদি ইনপুটটি S ="++-++" এর মত হয়, তাহলে আউটপুট হবে 3। যদি শুরুতে আমাদের স্তূপে 0টি পাথর থাকে, তাহলে অপারেশন করার পর পাথরের সংখ্যা 3-এর সমান হবে।

পদক্ষেপ

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

n := size of S
for initialize i := 0, when i < n, update (increase i by 1), do:
   res := (if S[i] is same as '-', then maximum of res - 1 and 0,
otherwise 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. C++ এ পুনরুদ্ধারের পরে সম্ভাব্য সকল আইপি ঠিকানা খুঁজে বের করার প্রোগ্রাম

  4. C++-এ সব বই কিনতে ন্যূনতম খরচ খুঁজুন