মনে করুন একটি টেক্সট স্ট্রিং এবং words (স্ট্রিং-এর তালিকা) দেওয়া আছে; আমাদের সব ইন্ডেক্স পেয়ার [i, j] বের করতে হবে যাতে সাবস্ট্রিং text[i]...text[j] words তালিকায় থাকে। যেমন স্ট্রিং "ababa" এবং words = ["aba", "ab"] হলে আউটপুট [[0,1], [0,2], [2,3], [2,4]]। মনে করুন ম্যাচগুলো ওভারল্যাপ হতে পারে, "aba" [0,2] এবং [2,4]-এ মিলেছে।
এটি সমাধান করার জন্য আমরা নিচের ধাপগুলো অনুসরণ করব:
- res := একটি খালি তালিকা
- for i in range 0 to length of string
- for j in range i+1 to length of string + 1
- যদি স্ট্রিং-এর i থেকে j পর্যন্ত সাবস্ট্রিং words-এ থাকে
- (i, j-1) রেজাল্ট অ্যারেতে যোগ করুন
- যদি স্ট্রিং-এর i থেকে j পর্যন্ত সাবস্ট্রিং words-এ থাকে
- for j in range i+1 to length of string + 1
- result রিটার্ন করুন
উদাহরণ (পাইথন)
নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝতে:
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]]