সমস্যা বিবরণ
একটি টেক্স্ট এবং দুটি শব্দ (first, second) দেওয়া আছে। টেক্স্টে "first second third" প্যাটার্ন খুঁজে third শব্দগুলো কালেক্ট করতে হবে। অর্থাৎ first-এর hemen পর second এবং second-এর hemen পর third পাওয়া যাবে।
উদাহরণ: text="lina is a good girl she is a good singer", first="a", second="good" → আউটপুট: ["girl", "singer"]।
সমাধানের পদ্ধতি
- টেক্স্টকে স্পেস দিয়ে স্প্লিট করে শব্দের লিস্ট বানান।
- লিস্ট ঘুরে i+2 < length এবং words[i]==first এবং words[i+1]==second চেক করুন।
- সত্য হলে words[i+2] রেজাল্টে যোগ করুন।
পাইথন উদাহরণ
class Solution(object):
def findOcurrences(self, text, first, second):
words = text.split(" ")
res = []
for i in range(len(words)):
if i + 2 < len(words) and words[i] == first and words[i+1] == second:
res.append(words[i+2])
return res
ob1 = Solution()
print(ob1.findOcurrences("lina is a good girl she is a good singer", "a", "good"))
ইনপুট
"lina is a good girl she is a good singer" "a" "good"
আউটপুট
['girl', 'singer']
জিপ (zip) ব্যবহার করে সংক্ষিপ্ত
def findOcurrences(text, first, second):
words = text.split()
return [w3 for w1, w2, w3 in zip(words, words[1:], words[2:])
if w1 == first and w2 == second]