ধরুন আমাদের দুটি স্ট্রিং s এবং t আছে। আমরা s থেকে যেকোনবার t মুছে ফেলতে পারি। এবং টি একবারে একবার প্রদর্শিত হয়। যতবার প্রয়োজন ততবার টি সরিয়ে s খালি হতে পারে কিনা তা আমাদের পরীক্ষা করতে হবে৷
সুতরাং, যদি ইনপুটটি s ="pipipinnn" t ="pin" এর মত হয়, তাহলে আউটপুটটি True হবে কারণ আমরা "pipipinnn" থেকে "pin" মুছে ফেলতে পারি, তারপর আমরা "pipinn" পাব, আবার "pin" সরিয়ে ফেলব। স্ট্রিং "পিন" পান, তারপর এটি খালি করতে এটি সরান৷
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যখন s> 0 এর মাপ, do
- অবস্থান :=s-এ t-এর শুরুর সূচক
- যদি অবস্থান s-এ না হয়, তাহলে
- লুপ থেকে বেরিয়ে আসুন
- s :=একবার s থেকে t সরান
- সত্যে প্রত্যাবর্তন করুন যখন s এর আকার 0 এর মত হয় অন্যথায় মিথ্যা
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
def solve(s, t): while len(s) > 0: position = s.find(t) if position == -1: break s = s.replace(t, "", 1) return len(s) == 0 s = "pipipinnn" t = "pin" print(solve(s, t))
ইনপুট
"pipipinnn", "pin"
আউটপুট
True