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

পাইথনে তালিকায় ডুপ্লিকেট উপাদান খুঁজে বের করে তাদের শেষ ঘটনা মুছে ফেলার প্রোগ্রাম


ধরা যাক A নামক একটি সংখ্যার তালিকা আছে, সব ডুপ্লিকেট সংখ্যা খুঁজে বের করে তাদের শেষ ঘটনা (last occurrence) মুছে ফেলতে হবে।

উদাহরণ: [10, 30, 40, 10, 30, 50] হলে আউটপুট [10, 30, 40, 50]।

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

  • seen := {}, d := {}
  • i = 0 থেকে len(nums)-1: d[nums[i]] ফ্রিকোয়েন্সি গণনা করুন।
  • i := 0, যতক্ষণ i < len(nums): n = d[nums[i]], seen[nums[i]] কাউন্ট বাড়ান। যদি n == seen[nums[i]] এবং n > 1, nums.pop(i), i--। i++
  • nums ফেরত দিন।

উদাহরণ কোড

class Solution:
    def solve(self, nums):
        seen = {}
        d = {}
        for i in range(len(nums)):
            if not nums[i] in d:
                d[nums[i]] = 1
            else:
                d[nums[i]] += 1
        i = 0
        while i < len(nums):
            n = d[nums[i]]
            if not nums[i] in seen:
                seen[nums[i]] = 1
            else:
                seen[nums[i]] += 1
            if n == seen[nums[i]] and n > 1:
                nums.pop(i)
                i -= 1
            i += 1
        return nums

ob = Solution()
print(ob.solve([10, 30, 40, 10, 30, 50]))

ইনপুট

[10, 30, 40, 10, 30, 50]

আউটপুট

[10, 30, 40, 50]
  1. পাইথনে তালিকা থেকে অ-সন্নিহিত উপাদানগুলোর সর্বোচ্চ সমষ্টি খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে প্রথম ও শেষ মান সমান সাবলিস্টের সংখ্যা খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে ১ থেকে n রেঞ্জের n+1 সংখ্যায় ডুপ্লিকেট এলিমেন্ট খুঁজে বের করার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম লিস্টের প্রথম ও শেষ উপাদান ইন্টারচেঞ্জ করা