मान लीजिए कि हमारे पास मान्य शब्दों की एक सूची है, और एक स्ट्रिंग s भी है, तो हमें घटते शब्दों की सबसे लंबी श्रृंखला की लंबाई का पता लगाना होगा जो कि s से शुरू करके और एकल अक्षरों को हटाकर और फिर भी मान्य शब्द बनाकर उत्पन्न किया जा सकता है।
इसलिए, यदि इनपुट शब्द =["lii", "सीमा", "लिमी", "ली", "कॉफी", "जुग", "पूल", "टाइप"] s ="सीमा" जैसा है, तो आउटपुट 4 होगा, जैसा कि हम "लिमिट", "लिमिट" -> "लिमी" -> "लिआई" -> "ली" शब्द से शुरू करके चेन बना सकते हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे
-
फ़ंक्शन को हल करें () परिभाषित करें। यह शब्द लेगा, s
-
max_num :=0
-
प्रत्येक के लिए i शब्दों में, करें
-
अगर मैं एस के समान हूं, तो
-
j के लिए 0 से लेकर s के आकार तक, करें
-
max_num :=अधिकतम 1 + हल करें (शब्द, s [सूचकांक 0 से j-1 तक] संयोजित s [सूचकांक j + 1 से अंत तक]) और max_num
-
-
-
-
वापसी max_num
उदाहरण
class Solution: def solve(self, words, s): max_num = 0 for i in words: if i == s: for j in range(len(s)): max_num = max(1 + self.solve(words, s[:j] + s[j + 1 :]), max_num) return max_num ob = Solution() words = ["lii", "limit", "limi", "li", "coffee", "jug", "pool", "type"] s = "limit" print(ob.solve(words, s))
इनपुट
["lii", "limit", "limi", "li", "coffee", "jug", "pool", "type"],"limit"
आउटपुट
4