मान लीजिए हमारे पास एक टेक्स्ट स्ट्रिंग और शब्द (स्ट्रिंग्स की एक सूची) हैं, हमें सभी सूचकांक जोड़े [i, j] ढूंढने हैं जैसे कि उपस्ट्रिंग text[i]...text[j] शब्दों की सूची में है। इसलिए यदि स्ट्रिंग "ababa" जैसी है और शब्द सरणी ["aba", "ab"] जैसी है, तो आउटपुट [[0,1], [0,2], [2,3], [2,4]] होगा। एक बात हम नोटिस कर सकते हैं, कि मिलान ओवरलैप हो सकते हैं, "aba" [0,2] और [2,4] में मिला है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- res := एक खाली सूची
- i के लिए 0 से स्ट्रिंग की लंबाई तक
- j के लिए i + 1 से स्ट्रिंग की लंबाई + 1 तक
- यदि सूचकांक i से j तक स्ट्रिंग का उपस्ट्रिंग words में है -
- (i, j - 1) को परिणाम सरणी में जोड़ें
- यदि सूचकांक i से j तक स्ट्रिंग का उपस्ट्रिंग words में है -
- j के लिए i + 1 से स्ट्रिंग की लंबाई + 1 तक
- परिणाम लौटाएं
उदाहरण (Python)
बेहतर समझ के लिए निम्न कार्यान्वयन देखें -
class Solution(object):
def indexPairs(self, text, words):
result = []
for i in range(len(text)):
for j in range(i + 1, len(text) + 1):
if text[i:j] in words:
result.append([i, j - 1])
return result
ob1 = Solution()
print(ob1.indexPairs("ababa", ["aba", "ab"]))
इनपुट
"ababa" ["aba","ab"]
आउटपुट
[[0,1],[0,2],[2,3],[2,4]]