मान लीजिए हमारे पास एक शब्द सूची और एक अन्य स्ट्रिंग s है जिसमें कोई स्पेस नहीं है। हमें जांचना है कि क्या स्ट्रिंग को शब्दों की सूची का उपयोग करके तोड़ा जा सकता है या नहीं।
इसलिए, यदि इनपुट इस तरह है words = ["love", "python", "we", "programming", "language"] s = "welovepythonprogramming", तो आउटपुट True होगा
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- words := सभी अद्वितीय शब्दों का एक नया सेट
- rec() फ़ंक्शन परिभाषित करें। यह i लेगा
- यदि i, s के आकार के समान है, तो
- True लौटाएं
- acc := खाली स्ट्रिंग
- j के लिए i से s के आकार तक रेंज में, करें
- acc := acc concatenate s[j]
- यदि acc, words में है, तो
- यदि rec(j + 1) सत्य है, तो
- True लौटाएं
- यदि rec(j + 1) सत्य है, तो
- 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