কম্পিউটার

C++ এ একটি প্রদত্ত সাব-স্ট্রিং পুনরাবৃত্তভাবে মুছে দিয়ে একটি স্ট্রিং খালি হতে পারে কিনা তা পরীক্ষা করুন


ধরুন, আমাদের দুটি স্ট্রিং দেওয়া হয়েছে, str1 এবং str2। str2 হল str1 এর একটি সাবস্ট্রিং, এবং আমরা str1 থেকে str2 মুছে দিতে পারি। এটা সম্ভব, স্ট্রিং str2 str1 এ একাধিকবার প্রদর্শিত হবে। এখানে আমাদের লক্ষ্য হল str1 একটি নাল স্ট্রিং হয়ে যায় কিনা তা খুঁজে বের করা যদি আমরা str1 থেকে str2 কে একাধিকবার সরিয়ে রাখি। যদি সম্ভব হয় আমরা 1 ফেরত দিই, অন্যথায় 0.

সুতরাং, যদি ইনপুট str1 ="CCCPPPPPP", str2 ="CPP" এর মত হয়; তাহলে আউটপুট সত্য হবে।

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

  • যখন str1> 0 এর মাপ, −
      করুন
    • index :=str1-এ str2-এর স্ট্রিং স্টার্ট পজিশন ফেরত দিন
    • যদি সূচক -1 এর মত হয়, তাহলে −
      • লুপ থেকে বেরিয়ে আসুন
    • str1 থেকে str2 মুছুন
  • 1 রিটার্ন করুন যদি str1 এর আকার 0 এর মত হয়, অন্যথায় 0।

উদাহরণ (C++)

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#include<bits/stdc++.h>
using namespace std;
bool solve(string str1, string str2) {
   while (str1.size() > 0) {
      int index = str1.find(str2);
      if (index == -1)
      break;
      str1.erase(index, str2.size());
   }
   return (str1.size() == 0);
}
int main() {
   string str1 = "CCCPPPPPP", str2 = "CPP";
   cout<<solve(str1, str2)<<endl;
   return 0;
}

ইনপুট

"CCCPPPPPP", "CPP"

আউটপুট

1

  1. একটি প্রদত্ত স্ট্রিং C++ এ দুটি বিকল্প অক্ষর দ্বারা গঠিত কিনা তা পরীক্ষা করুন

  2. একটি স্ট্রিং C++ এ একটি সাব-স্ট্রিং আছে কিনা তা পরীক্ষা করুন

  3. পাইথনে একটি প্রদত্ত সাব-স্ট্রিং পুনরাবৃত্তভাবে মুছে দিয়ে একটি স্ট্রিং খালি হতে পারে কিনা তা পরীক্ষা করুন

  4. পুনরাবৃত্ত মুছে ফেলার মাধ্যমে একটি খালি হতে পারে কিনা তা পরীক্ষা করতে পাইথনে স্ট্রিং স্লাইসিং