কম্পিউটার টিউটোরিয়াল

পাইথনে লিস্টের প্রতিটি উপাদানের যুগ্মকে কনক্যাটেনেট করে যোগফল বের করার প্রোগ্রাম

ধরা যাক nums নামক একটি সংখ্যার লিস্ট রয়েছে। আমাদের nums-এ প্রতিটি সংখ্যার যুগ্মকে কনক্যাটেনেট (সংযুক্ত) করে সেই সমস্ত সংখ্যার যোগফল বের করতে হবে। এখানে যুগ্ম (i, j) এবং (j, i) আলাদা মाना হবে।

উদাহরণ

ইনপুট: nums = [5, 3]

আউটপুট: 176

ব্যাখ্যা: কনক্যাটেনেশনগুলি হলো:

  • 5 concat 5 = 55
  • 5 concat 3 = 53
  • 3 concat 5 = 35
  • 3 concat 3 = 33
যোগফল: 55 + 53 + 35 + 33 = 176

সমাধানের ধাপসমূহ

  1. memo := একটি নতুন ম্যাপ (ক্যাশ সংরক্ষণের জন্য)
  2. nums1 := nums
  3. temp := 0
  4. c := nums1-এর সব উপাদানের যোগফল
  5. a := nums-এর আকার
  6. i = 0 থেকে a-1 পর্যন্ত লুপ চালান
  7. যদি nums[i] == 0 হয়, তবে temp := temp + c
  8. অন্যথায়, যদি nums[i] memo-তে থাকে, তবে temp := temp + memo[nums[i]]
  9. অন্যথায়:
    • b := 0
    • j = 0 থেকে a-1 পর্যন্ত লুপ চালান
    • b := b + int(str(nums[i]) + str(nums1[j]))
    • memo[nums[i]] := b
    • temp := temp + memo[nums[i]]
  10. 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
  1. পাইথনে বাইনারি ট্রির সব নোডের মান যোগফল বের করা

  2. লিস্টের কিউমুলেটিভ সাম বের করার পাইথন প্রোগ্রাম

  3. পাইথনে লিস্টের এলিমেন্টগুলোর যোগফল বের করা

  4. পাইথনে লিস্টের সব পেয়ারের অ্যাবসোলিউট ডিফারেন্সের যোগফল