ধরুন আমাদের একটি অ্যারের সংখ্যা আছে যেখানে সমস্ত উপাদান অনন্য এবং আলাদা আলাদা ছোট অ্যারে সহ আরেকটি অ্যারে আছে যাকে পিস বলা হয়। আমাদের চেক করতে হবে যে আমরা অ্যারেগুলিকে টুকরো টুকরো করে কোনো ক্রমে সংযুক্ত করে মূল অ্যারের সংখ্যা পেতে পারি কিনা। কিন্তু আমরা প্রতিটি অ্যারের টুকরা[i]-এ উপস্থিত উপাদানগুলিকে পুনরায় সাজানোর অনুমতি নেই৷
৷সুতরাং, যদি ইনপুট সংখ্যার মত হয় =[5,1,12,36,2,47,6] টুকরা =[[2,47,6],[12,36],[1],[5]], তাহলে আউটপুট হবে True কারণ আমরা তাদের এই ক্রমে [[5], [1], [12,36], [2,47,6]] মেইন অ্যারে পেতে পারি।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
temp :=একটি নতুন তালিকা
-
প্রতিটি পি টুকরো টুকরো জন্য, করুন
-
যদি p[0] সংখ্যায় উপস্থিত না হয়, তাহলে
-
রিটার্ন ফলস
-
-
l :=p এর আকার
-
indx :=index(p[0]) সংখ্যায়
-
যদি সূচক সূচক থেকে indx+l-1 পর্যন্ত সংখ্যার সাবঅ্যারে p এর মতো না হয়, তাহলে
-
রিটার্ন ফলস
-
-
অন্যথায়,
-
টেম্পের পরে p যোগ করুন
-
-
-
যদি সংখ্যার আকার তাপমাত্রার আকারের সমান হয়, তাহলে
-
রিটার্ন ট্রু
-
-
অন্যথায়,
-
রিটার্ন ফলস
-
উদাহরণ (পাইথন)
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(nums, pieces): temp = [] for p in pieces: if p[0] not in nums: return False l = len(p) indx = nums.index(p[0]) if nums[indx:indx+l] != p: return False else: temp.extend(p) if len(nums) == len(temp): return True else: return False nums = [5,1,12,36,2,47,6] pieces = [[2,47,6],[12,36],[1],[5]] print(solve(nums, pieces))
ইনপুট
[5,1,12,36,2,47,6], [[2,47,6],[12,36],[1],[5]]
আউটপুট
True