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

পাইথনে টার্গেট সমান সাবলিস্টের সংখ্যা বের করার প্রোগ্রাম


মান লক্ষ্য করুন আমাদের কাছে একটি সংখ্যার তালিকা nums এবং অন্য একটি মান target আছে। আমাদের কাজ হল এমন সাবলিস্টগুলোর সংখ্যা বের করা যাদের যোগফল target এর সমান।

উদাহরণস্বরূপ, যদি ইনপুট হয় nums = [3, 0, 3] এবং target = 3, তবে আউটপুট হবে 4, কারণ যোগফল ৩ দিয়ে এমন সাবলিস্টগুলো হল: [3], [3, 0], [0, 3], [3]।

সমাধানের ধাপসমূহ:
  • temp := একটি খালি ম্যাপ (ডিফল্টডিক্ট)
  • temp[0] := 1
  • s := 0, ans := 0
  • i কে ০ থেকে len(nums) পর্যন্ত লুপ চালান:
    • s := s + nums[i]
    • comp := s - target
    • যদি comp temp-এ থাকে, তবে ans := ans + temp[comp]
    • temp[s] := temp[s] + 1
  • ans রিটার্ন করুন।
উদাহরণ কোড
from collections import defaultdict

class Solution:
    def solve(self, nums, target):
        temp = defaultdict(int)
        temp[0] = 1
        s = 0
        ans = 0
        for i in range(len(nums)):
            s += nums[i]
            comp = s - target
            if comp in temp:
                ans += temp[comp]
            temp[s] += 1
        return ans

ob = Solution()
nums = [3, 0, 3]
target = 3
print(ob.solve(nums, target))
ইনপুট
[3, 0, 3], 3
আউটপুট
4
  1. পাইথনে বাইনারি ট্রিতে যেসব পথের যোগফল k তাদের সংখ্যা গুনার প্রোগ্রাম

  2. পাইথনে দিয়ে गये সংখ্যার সব ডিজিটের যোগফল বের করার প্রোগ্রাম

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

  4. পাইথনে একটি সংখ্যার বিষম গুণনীয়গুলোর যোগফল বের করার প্রোগ্রাম