মান লযয আমাদের দুটি স্ট্রিং দেওয়া আছে, str1 এবং str2। str2, str1-এর একটি সাবস্ট্রিং, এবং আমরা str1 থেকে str2 ডিলিট করতে পারি। সম্ভবত str2, str1-এ একাধিকবার আছে। আমাদের লক্ষ্য হলো বের করা str1 কি নাল স্ট্রিং হয়ে যায় যদি আমরা বারবার str2 str1 থেকে ডিলিট করি। যদি সম্ভব হয়, 1 ফেরত দিন, অন্যথায় 0।
তাহলে, যদি ইনপুট হয় str1 = "CCCPPPPPP", str2 = "CPP"; তবে আউটপুট হবে true।
এটি সমাধান করার জন্য আমরা নিচের ধাপগুলো অনুসরণ করব:
- যখন str1-এর সাইজ > 0:
- index := str1-এ str2-এর শুরু পজিশন
- যদি index == -1, তবে লুপ থেকে বের হোন
- str1 থেকে str2 ডিলিট করুন
- যদি str1-এর সাইজ ০ হয়, 1 ফেরত দিন, অন্যথায় 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