मान लीजिए कि हमारे पास शब्दों की एक सूची है और एक स्ट्रिंग s है, हमें उन शब्दों की सूची में स्ट्रिंग्स की संख्या का पता लगाना है जो s के बाद के हैं।
इसलिए, यदि इनपुट शब्द =["xz", "xw", "y"] s ="xyz" जैसा है, तो आउटपुट 2 होगा, क्योंकि "xz" और "y" "xyz" के बाद के हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- उत्तर:=0
- d :=एक खाली नक्शा
- शब्दों में प्रत्येक शब्द के लिए, करें
- d के अंत में शब्द डालें[शब्द[0]]
- प्रत्येक c in s के लिए, करें
- l :=d[c]
- d[c] :=एक नई सूची
- एल में प्रत्येक शब्द के लिए, करें
- यदि शब्द का आकार 1 है, तो
- उत्तर:=उत्तर + 1
- अन्यथा,
- d[word[1]] के अंत में [इंडेक्स 1 से अंत तक] शब्द का सबस्ट्रिंग डालें
- यदि शब्द का आकार 1 है, तो
- वापसी उत्तर
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
from collections import defaultdict class Solution: def solve(self, words, s): ans = 0 d = defaultdict(list) for word in words: d[word[0]].append(word) for c in s: l = d[c] d[c] = [] for word in l: if len(word) == 1: ans += 1 else: d[word[1]].append(word[1:]) return ans ob = Solution() words = ["xz", "xw", "y"] s = "xyz" print(ob.solve(words, s))
इनपुट
["xz", "xw", "y"], "xyz"
आउटपुट
2