मान लीजिए हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है। हमें संख्याओं के प्रत्येक युग्म के प्रत्येक संयोजन का योग अंकों में ज्ञात करना होता है। यहाँ युग्म (i, j) और युग्म (j, i) को भिन्न माना जाता है।
इसलिए, यदि इनपुट संख्या =[5, 3] की तरह है, तो आउटपुट 176 होगा, क्योंकि हमारे पास निम्नलिखित संयोजन हैं:(अंक [0] + अंक [0]) =(5 संक्षिप्त 5) =55, ( nums[0] + nums[1]) =(5 concat 3) =53, (nums[1] + nums[0]) =(3 concat 5) =35, (nums[0] + nums[0]) =(3 संक्षिप्त 3) =33, तो योग 55 + 53 + 35 + 33 =176
. हैइसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
memo := a new map nums1 := nums temp := 0 c := sum of all elements in nums1 a := size of nums for i in range 0 to a, do if nums[i] is same as 0, then temp := temp + c otherwise, if nums[i] is present in memo, then temp := temp + memo[nums[i]] otherwise, b := 0 for j in range 0 to a, do b := b + integer of (nums[i] concatenate nums1[j]) memo[nums[i]] := b temp := temp + memo[nums[i]] return temp
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
class Solution: def solve(self, nums): memo = {} nums1 = nums temp = 0 c = sum(nums1) a = len(nums) for i in range(a): if nums[i] == 0: temp += c else: if nums[i] in memo: temp += memo[nums[i]] else: b = 0 for j in range(a): b += int(str(nums[i]) + str(nums1[j])) memo[nums[i]] = b temp += memo[nums[i]] return temp ob = Solution() nums = [5, 3] print(ob.solve(nums))
इनपुट
[5, 3]
आउटपुट
176