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

পাইথনে স্বতন্ত্র উপাদান সম্বলিত সর্বোচ্চ দীর্ঘ সাবলিস্টের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম


ধরা যাক nums নামক একটি সংখ্যার তালিকা আছে, এবং আমাদের সবচেয়ে দীর্ঘ সन्नিবিষ্ট সাবলিস্টের দৈর্ঘ্য খুঁজে বের করতে হবে যেখানে সব উপাদান অনন্য (unique)।

উদাহরণ: nums = [6, 2, 4, 6, 3, 4, 5, 2] হলে আউটপুট 5, কারণ সবচেয়ে দীর্ঘ অনন্য উপাদান সাবলিস্ট হল [6, 3, 4, 5, 2]।

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

  • head := 0, dct := খালি ম্যাপ
  • max_dist := 0
  • প্রতিটি ইন্ডেক্স i এবং উপাদান num-এর জন্য nums-এ:
    • যদি num dct-এ থাকে এবং dct[num] >= head হয়, তবে head := dct[num] + 1
    • dct[num] := i
    • যদি i - head + 1 > max_dist হয়, তবে max_dist := i - head + 1
  • max_dist ফেরত দিন।

উদাহরণ কোড

class Solution:
    def solve(self, nums):
        head = 0
        dct = {}
        max_dist = 0
        for i, num in enumerate(nums):
            if num in dct and dct[num] >= head:
                head = dct[num] + 1
            dct[num] = i
            if i - head + 1 > max_dist:
                max_dist = i - head + 1
        return max_dist

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

ইনপুট

[6, 2, 4, 6, 3, 4, 5, 2]

আউটপুট

5
  1. পাইথনে অক্রমাগত অ্যারেতে সর্বোচ্চ ক্রমাগত সিকোয়েন্সের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে দুটি স্ট্রিং থেকে সর্বোচ্চ অ্যানাগ্রাম সাবসিকোয়েন্সের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে স্ট্রিংয়ে সর্বোচ্চ সমবায়ন ব্র্যাকেট সাবসিকোয়েন্সের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে একটি উপাদান সরিয়ে কনটিগুয়াস স্ট্রিক্টলি ইনক্রিজিং সাবলিস্টের সর্বোচ্চ দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম