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

পাইথনে প্রতিটি k-আকারের উইন্ডোতে অনন্য উপাদান সংখ্যা খুঁজে বের করার প্রোগ্রাম


ধরা যাক nums নামক একটি সংখ্যার তালিকা এবং একটি সংখ্যা k আছে। প্রতিটি k-আকারের উইন্ডোতে স্বতন্ত্র উপাদান সংখ্যা বের করে একটি তালিকা তৈরি করতে হবে।

উদাহরণ: nums = [2, 2, 3, 3, 4], k = 2 হলে আউটপুট [1, 2, 1, 2], কারণ উইন্ডোগুলো [2,2], [2,3], [3,3], [3,4]।

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

  • c := nums-এর প্রথম k উপাদানের ফ্রিকোয়েন্সি ম্যাপ (Counter)
  • ans := নতুন তালিকা
  • i = k থেকে len(nums)-1 পর্যন্ত:
    • ans-এ len(c) অ্যাপেন্ড করুন।
    • c[nums[i]] += 1, c[nums[i-k]] -= 1
    • যদি c[nums[i-k]] == 0 হয়, ডিলিট করুন।
  • শেষে len(c) অ্যাপেন্ড করুন এবং ans ফেরত দিন।

উদাহরণ কোড

from collections import Counter
class Solution:
    def solve(self, nums, k):
        c = Counter()
        for i in range(k):
            c[nums[i]] += 1
        ans = []
        for i in range(k, len(nums)):
            ans.append(len(c))
            c[nums[i]] += 1
            c[nums[i - k]] -= 1
            if c[nums[i - k]] == 0:
                del c[nums[i - k]]
        ans.append(len(c))
        return ans

ob = Solution()
nums = [2, 2, 3, 3, 4]
print(ob.solve(nums, 2))

ইনপুট

[2, 2, 3, 3, 4], 2

আউটপুট

[1, 2, 1, 2]
  1. পাইথনে লিস্টে যেকোনো দুটি সংখ্যার যোগফল k কিনা যাচাই করার প্রোগ্রাম

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

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

  4. পাইথনে লিস্ট থেকে N বড় এলিমেন্ট বের করা