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

পাইথনে তালিকা জোড়া বাঁটতে পারলে যোগফল k-গুণিতক হয় কিনা যাচাই

nums নামক একটি তালিকা এবং একটি মান k দেওয়া আছে। তালিকাটি জোড়ায় ভাগ করা যায় কিনা যাতে প্রতিটি জোড়ার যোগফল k দিয়ে বিভাজ্য হয় তা যাচাই করতে হবে।

উদাহরণ: nums = [4, 7, 2, 5], k = 6 হলে আউটপুট True, কারণ (4,2) এবং (7,5) জোড়ার যোগফল ৬ দিয়ে বিভাজ্য।

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

  • যদি তালিকার দৈর্ঘ্য বিজোড় হয় তবে False ফেরত দিন
  • count := k আকারের তালিকা ০ দিয়ে পূরণ
  • প্রতিটি n এর জন্য count[n%k] বাড়ান
  • যদি count[0] বিজোড় হয় তবে False ফেরত দিন
  • i = 1 থেকে k//2 পর্যন্ত count[i] == count[k-i] কিনা যাচাই করুন
  • সব মিললে True ফেরত দিন

উদাহরণ কোড

class Solution:
    def solve(self, nums, k):
        if len(nums) % 2:
            return False
        count = [0] * k
        for n in nums:
            count[n % k] += 1
        if count[0] % 2:
            return False
        for i in range(1, k // 2 + 1):
            if count[i] != count[k - i]:
                return False
        return True

ob = Solution()
nums = [4, 7, 2, 5]
k = 6
print(ob.solve(nums, k))

ইনপুট

[4, 7, 2, 5], 6

আউটপুট

True
  1. পাইথনে তালিকা থেকে যুগল যাহার যোগফল বিজোড় সেটিValid পেয়ারের সংখ্যা গণনা করার প্রোগ্রাম

  2. পাইথনে একটি স্ট্রিংকে অন্য স্ট্রিংএ 1-to-1 ম্যাপ করা সম্ভব কিনা যাচাই করার প্রোগ্রাম

  3. পাইথনে লিস্ট স্ট্রিক্টলি ইনক্রিজিং বা ডিক্রিজিং কিনা যাচাই করার প্রোগ্রাম

  4. পাইথনে লিস্ট খালি কিনা যাচাই করার প্রোগ্রাম