ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে, আমাদের এটিকে বাম এবং ডান উভয় দিক থেকে চেপে ধরতে হবে যতক্ষণ না একটি অবশিষ্ট উপাদান থাকে। আমরা প্রতিটি ধাপে রাজ্যগুলিকে ফিরিয়ে দেব৷
৷সুতরাং, ইনপুট যদি সংখ্যার মত হয় =[10,20,30,40,50,60], তাহলে আউটপুট হবে
<প্রে>[ [১০, ২০, ৩০, ৪০, ৫০, ৬০], [৩০, ৩০, ৪০, ১১০], [৬০, ১৫০], [২১০]]এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- ret :=শুধুমাত্র একটি উপাদান সংখ্যা সহ একটি তালিকা
- সংখ্যার আকার> 1, do
- যদি সংখ্যার আকার 2 এর মতো হয়, তাহলে
- সংখ্যা :=উপাদান সহ একটি তালিকা তৈরি করুন (সংখ্যা[0] + সংখ্যা[1])
- অন্যথায় যখন সংখ্যার আকার 3 এর মতো হয়, তখন
- সংখ্যা :=উপাদান দিয়ে একটি তালিকা তৈরি করুন (সংখ্যা[0] + সংখ্যা[1] + সংখ্যা[2])
- অন্যথায়,
- সংখ্যা :=উপাদানগুলির সাথে একটি তালিকা তৈরি করুন (সংখ্যা[0] + সংখ্যা[1]) তারপরে সূচী 2 থেকে সংখ্যার তৃতীয় শেষ উপাদানে সংখ্যা থেকে অন্য একটি তালিকা সন্নিবেশ করুন তারপর উপাদান সহ আরেকটি তালিকা যুক্ত করুন (সংখ্যার দ্বিতীয় শেষ উপাদান + সংখ্যার শেষ উপাদান)
- ret এর শেষে সংখ্যা সন্নিবেশ করান
- যদি সংখ্যার আকার 2 এর মতো হয়, তাহলে
- রিটার্ন রিটার্ন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
শ্রেণীর সমাধান:def solve(self, nums):ret =[nums] while len(nums)> 1:if len(nums) ==2:nums =[nums[0] + nums[1]] elif len(nums) ==3:nums =[nums[0] + nums[1] + nums[2]] else:nums =[nums[0] + nums[1]] + nums[2:-2] + [nums[-2] + nums[-1]] ret.append(nums) রিটার্ন retob =Solution() print(ob.solve([10,20,30,40,50,60]))
ইনপুট
[10,20,30,40,50,60]