ধরুন আমাদের একটি 2D অ্যারে আছে যাকে গ্রুপ বলা হয় এবং আরেকটি অ্যারে সংখ্যা। আমাদের পরীক্ষা করতে হবে যে আমরা অ্যারের সংখ্যা থেকে n ডিসজেন্ট সাবয়ারে নির্বাচন করতে পারি যেমন ith সাবয়ারে গ্রুপ[i] (0-ইনডেক্সড) এর সমান, এবং যদি i> 0 হয়, (i-1)তম সাবয়ারে আগে উপস্থিত হবে। ith subarray সংখ্যায়।
সুতরাং, যদি ইনপুট গ্রুপের মত হয় =[[2,-2,-2],[4,-3,0]] সংখ্যা =[1,-1,0,2,-2,-2,4,- 3,0], তাহলে আউটপুট সত্য হবে কারণ অ্যারে গ্রুপ[0] সংখ্যার সূচী 3 থেকে 5 পর্যন্ত উপস্থিত থাকে এবং গ্রুপ[1] সূচক 6 থেকে 8 পর্যন্ত থাকে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
i :=0
-
প্রতিটি গ্রুপের জন্য, করুন
-
j এর জন্য রেঞ্জ i থেকে সংখ্যার আকার - 1, করুন
-
যদি সংখ্যার সাবঅ্যারে [জিআরপির সূচক j থেকে j+ আকার পর্যন্ত] grp এর মতো হয়, তাহলে
-
i :=j + grp এর আকার
-
লুপ থেকে বেরিয়ে আসুন
-
-
অন্যথায়,
-
রিটার্ন ফলস
-
-
-
-
রিটার্ন ট্রু
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(groups, nums): i = 0 for grp in groups: for j in range(i, len(nums)): if nums[j:j+len(grp)] == grp: i = j + len(grp) break else: return False return True groups = [[2,-2,-2],[4,-3,0]] nums = [1,-1,0,2,-2,-2,4,-3,0] print(solve(groups, nums))
ইনপুট
[[2,-2,-2],[4,-3,0]], [1,-1,0,2,-2,-2,4,-3,0]
আউটপুট
True