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

পাইথনে সাবলিস্টের যোগফল k-র গুণিতক হয় এমন সাবলিস্ট খুঁজে বের করার প্রোগ্রাম


মান লক্ষ্য করুন আমাদের কাছে নন-নেগেটিভ সংখ্যার একটি তালিকা nums এবং একটি পজিটিভ মান k আছে। আমাদের কাজ হল চেক করা যে দৈর্ঘ্য কমপক্ষে ২ এমন কোনো সাবলিস্ট আছে কিনা যেনার যোগফল k-র গুণিতক (multiple)।

উদাহরণস্বরূপ, যদি ইনপুট হয় nums = [12, 6, 3, 4] এবং k = 5, তবে আউটপুট হবে True, কারণ সাবলিস্ট [12, 3]-র যোগফল ১৫ যা ৫ দিয়ে বিভাজ্য।

সমাধানের ধাপসমূহ:
  • sum := 0
  • m := {} (একটি নতুন ম্যাপ)
  • m[0] := -1
  • i কে ০ থেকে len(nums) পর্যন্ত লুপ চালান:
    • sum := sum + nums[i]
    • sum := sum % k
    • যদি sum in m হয়, তবে:
      • যদি i - m[sum] >= 2 হয়, তবে True রিটার্ন করুন।
    • অন্যথায়, m[sum] := i
  • False রিটার্ন করুন।
উদাহরণ কোড
class Solution:
    def solve(self, nums, k):
        sum = 0
        m = {}
        m[0] = -1
        for i in range(0, len(nums)):
            sum += nums[i]
            sum %= k
            if sum in m:
                if i - m[sum] >= 2:
                    return True
            else:
                m[sum] = i
        return False

ob = Solution()
nums = [12, 6, 3, 4]
k = 5
print(ob.solve(nums, k))
ইনপুট
[12, 6, 3, 4], 5
আউটপুট
True
  1. পাইথনে দিয়ে যোগফলের জন্য সর্বোচ্চ গুণফল নির্ণয়

  2. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

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

  4. পাইথনে অ্যারের যোগফল বের করা