मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, हमें इसे बाएं और दाएं दोनों तरफ से तब तक निचोड़ना है जब तक एक शेष तत्व नहीं बचता। हम प्रत्येक चरण पर राज्यों को लौटाएंगे।
उदाहरण के लिए, यदि इनपुट है nums = [10,20,30,40,50,60], तो आउटपुट होगा:
[ [10, 20, 30, 40, 50, 60], [30, 30, 40, 110], [60, 150], [210] ]
हल करने के चरण
ret :=केवल एक तत्वnumsवाली सूची।- जब तक
numsका आकार > 1:- यदि
numsका आकार 2 के समान है, तोnums := [nums[0] + nums[1]]वाली सूची बनाएं। - अन्यथा यदि
numsका आकार 3 के समान है, तोnums := [nums[0] + nums[1] + nums[2]]वाली सूची बनाएं। - अन्यथा:
nums := [nums[0] + nums[1]] + nums[2:-2] + [nums[-2] + nums[-1]]
numsकोretके अंत में डालें।
- यदि
retलौटाएं।
उदाहरण
class Solution:
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)
return ret
ob = Solution()
print(ob.solve([10,20,30,40,50,60]))
इनपुट
[10,20,30,40,50,60]
आउटपुट
[[10, 20, 30, 40, 50, 60], [30, 30, 40, 110], [60, 150], [210]]