ধরুন, দুটি স্ট্রিং s এবং t দেওয়া হয়েছে। আমরা s-থেকে t-কে যেকোনো বার ডিলিট করতে পারি। t একবারে একবারই আসবে। আমাদের যাচাই করতে হবে যে t বারবার রিমুভ করে s-কে খালি করা যায় কিনা।
যেমন, ইনপুট s = "pipipinnn", t = "pin" হলে আউটপুট হবে True, কারণ:
"pipipinnn" -> "pin" রিমুভ -> "pipinn" -> "pin" রিমুভ -> "pin" -> "pin" রিমুভ -> খালি।
সমাধানের ধাপসমূহ
while len(s) > 0:position = s.find(t)।- যদি
position == -1হয় (পাওয়া যায়নি), তবে ব্রেক করুন। s = s.replace(t, "", 1)(শুধু প্রথম অকুরেন্স রিমুভ করুন)।
- যদি
len(s) == 0হয়, তবে True ফেরত দিন, অন্যথায় False।
উদাহরণ কোড
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