কম্পিউটার

C++ ব্যবহার করে বাইনারি স্ট্রিং S যোগ করার জন্য ন্যূনতম সংখ্যক অপারেশন প্রয়োজন।


সমস্যা বিবৃতি

একটি বাইনারি স্ট্রিং str দেওয়া. str দ্বারা উপস্থাপিত সংখ্যা তৈরি করতে সঞ্চালিত করা প্রয়োজন ন্যূনতম সংখ্যক অপারেশন খুঁজুন। শুধুমাত্র নিম্নলিখিত ক্রিয়াকলাপগুলি সম্পাদন করা যেতে পারে -

  • 2 x যোগ করুন
  • ২ বিয়োগ করুন x

যদি বাইনারি স্ট্রিং হয় "1000" তাহলে আমাদের শুধুমাত্র 1টি অপারেশন করতে হবে অর্থাৎ 2 3 যোগ করুন

যদি বাইনারি স্ট্রিং "101" হয় তবে আমাদের 2টি অপারেশন করতে হবে যেমন 2 2 যোগ করুন + 2 0

উদাহরণ

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int getMinOperations(string s){
   reverse(s.begin(), s.end());
   int n = s.length();
   int result[n + 1][2];
   if (s[0] == '0') {
      result[0][0] = 0;
   } else {
      result[0][0] = 1;
   }
   result[0][1] = 1;
   for (int i = 1; i < n; ++i) {
      if (s[i] == '0') {
         result[i][0] = result[i - 1][0];
         result[i][1] = 1 + min(result[i - 1][1],
         result[i - 1][0]);
      } else {
         result[i][1] = result[i - 1][1];
         result[i][0] = 1 + min(result[i - 1][0],
         result[i - 1][1]);
      }
   }
   return result[n - 1][0];
}
int main(){
   string str = "101";
   cout << "Minimum required operations = " << getMinOperations(str) << endl;
   return 0;
}

আউটপুট

আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট −

তৈরি করে
Minimum required operations = 2

  1. শত্রুকে পরাস্ত করার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক অপারেশন খুঁজে বের করার জন্য C++ প্রোগ্রাম

  2. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

  3. C++ এ একটি স্ট্রিং প্যালিনড্রোম তৈরি করতে ন্যূনতম সংখ্যক মুছে ফেলা।

  4. C++ ব্যবহার করে সংখ্যার ন্যূনতম যোগফল নির্ণয় করুন।