ধরা যাক nums নামক একটি সংখ্যার লিস্ট রয়েছে। আমাদের nums-এ প্রতিটি সংখ্যার যুগ্মকে কনক্যাটেনেট (সংযুক্ত) করে সেই সমস্ত সংখ্যার যোগফল বের করতে হবে। এখানে যুগ্ম (i, j) এবং (j, i) আলাদা মाना হবে।
উদাহরণ
ইনপুট: nums = [5, 3]
আউটপুট: 176
ব্যাখ্যা: কনক্যাটেনেশনগুলি হলো:
5 concat 5 = 555 concat 3 = 533 concat 5 = 353 concat 3 = 33
55 + 53 + 35 + 33 = 176
সমাধানের ধাপসমূহ
memo:= একটি নতুন ম্যাপ (ক্যাশ সংরক্ষণের জন্য)nums1 := numstemp := 0c := nums1-এর সব উপাদানের যোগফলa := nums-এর আকারi = 0থেকেa-1পর্যন্ত লুপ চালান- যদি
nums[i] == 0হয়, তবেtemp := temp + c - অন্যথায়, যদি
nums[i]memo-তে থাকে, তবেtemp := temp + memo[nums[i]] - অন্যথায়:
b := 0j = 0থেকেa-1পর্যন্ত লুপ চালানb := b + int(str(nums[i]) + str(nums1[j]))memo[nums[i]] := btemp := temp + memo[nums[i]]
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