ধরুন আমাদের একটি শব্দ তালিকা এবং অন্য একটি স্ট্রিং আছে যেখানে কোনো স্পেস নেই। শব্দের তালিকা ব্যবহার করে স্ট্রিং ভাঙা যায় কি না তা আমাদের পরীক্ষা করতে হবে।
সুতরাং, যদি ইনপুটটি শব্দের মত হয় =["love", "python", "we", "programming", "language"] s ="welovepythonprogramming", তাহলে আউটপুট হবে True
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- শব্দ :=সকল অনন্য শব্দের একটি নতুন সেট
- একটি ফাংশন rec() সংজ্ঞায়িত করুন। এটি i লাগবে
- যদি i s এর আকারের সমান হয়, তাহলে
- সত্য ফেরান
- acc :=ফাঁকা স্ট্রিং
- j এর জন্য i থেকে s এর পরিসরে, কর
- acc :=acc concatenate s[j]
- যদি acc শব্দে হয়, তাহলে
- যদি rec(j + 1) True হয়, তাহলে
- সত্য ফেরান
- যদি rec(j + 1) True হয়, তাহলে
- মিথ্যে ফেরত দিন
- প্রধান পদ্ধতি থেকে rec(0) কল করুন এবং ফলাফল ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, words, s): words = set(words) def rec(i=0): if i == len(s): return True acc = "" for j in range(i, len(s)): acc += s[j] if acc in words: if rec(j + 1): return True return False return rec() ob = Solution() words = ["love", "python", "we", "programming", "language"] s = "welovepythonprogramming" print(ob.solve(words, s))
ইনপুট
["love", "python", "we", "programming", "language"], "welovepythonprogramming"
আউটপুট
True