একটি শব্দ তালিকা এবং স্পেস-রহিত একটি স্ট্রিং s দেওয়া আছে। s কে শব্দ তালিকায় থাকা শব্দগুলোর সংযোগ দিয়ে গঠন করা যায় কিনা তা যাচাই করতে হবে।
উদাহরণ: words = ["love", "python", "we", "programming", "language"], s = "welovepythonprogramming" হলে আউটপুট True।
সমাধানের ধাপসমূহ
- words কে সেটে রূপান্তর করুন
- রিকার্শিভ ফাংশন rec(i) সংজ্ঞায়িত করুন:
- যদি i == len(s) হয় তবে True ফেরত দিন
- acc := খালি স্ট্রিং
- j = i থেকে len(s)-1 পর্যন্ত:
- acc += s[j]
- যদি acc words-এ থাকে এবং rec(j+1) True হয় তবে True ফেরত দিন
- False ফেরত দিন
- 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