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