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

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


মান ল করুন একটি s স্ট্রিং, আমাদের সর্বোচ্চ দৈর্ঘ্যের সাবস্ট্রিং খুঁজে বের করতে হবে যাতে তাতে hoogstens ২টি ডিস্টিন্ক্ট ক্যারেক্টার থাকে।

যদি ইনপুট হয় s = "xyzzy", তবে আউটপুট হবে ৪, কারণ "yzzy" হল hoogstens ২টি ইউনিক ক্যারেক্টার বিশিষ্ট সর্বোচ্চ সাবস্ট্রিং।

এটি সমাধান করতে আমরা নিম্নলিখিত ধাপগুলি অনুসরণ করব:

  • start := 0
  • c := একটি ম্যাপ (Counter)
  • ans := 0
  • end কে ০ থেকে s-এর আকার পর্যন্ত লুপ চালান:
    • c[s[end]] := c[s[end]] + 1
    • যখন c-এর আকার > 2:
      • c[s[start]] := c[s[start]] - 1
      • যদি c[s[start]] == 0, c[s[start]] ডিলিট করুন
      • start := start + 1
    • ans := max(ans, end - start + 1)
  • ans ফেরত দিন

বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশনটি দেখুন:

উদাহরণ

class Solution:    def solve(self, s):       from collections import Counter       start = 0       c = Counter()       ans = 0       for end in range(len(s)):          c[s[end]] += 1          while len(c) > 2:             c[s[start]] -= 1             if not c[s[start]]:                del c[s[start]]             start += 1          ans = max(ans, end - start + 1)       return ans ob = Solution() s = "xyzzy" print(ob.solve(s))

ইনপুট

s = "xyzzy"

আউটপুট

4

  1. পাইথনে n-ary ট্রি-তে সর্বোচ্চ পথ দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে বাইনারি ট্রিতে দুটি উপাদানের সাধারণ পূর্বপুরুষ খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে দুটি স্বতন্ত্র উপাদানের সর্বোচ্চ গুণফল খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে কোনো সংখ্যা ২-এর ঘাত কিনা চেক করা