কম্পিউটার

পাইথনে কমপক্ষে k অক্ষর গণনা সহ দীর্ঘতম সাবস্ট্রিংয়ের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের একটি স্ট্রিং আছে যেখানে প্রতিটি অক্ষর বাছাই করা হয়েছে এবং আমাদের কাছে একটি সংখ্যাও আছে, আমাদের দীর্ঘতম সাবস্ট্রিংয়ের দৈর্ঘ্য খুঁজে বের করতে হবে যাতে প্রতিটি অক্ষর কমপক্ষে k বার হয়।

সুতরাং, যদি ইনপুটটি s ="aabccddeeffghij" k =2 এর মত হয়, তাহলে আউটপুট হবে 8, কারণ এখানে দীর্ঘতম সাবস্ট্রিং হল "ccddeeff" এখানে প্রতিটি অক্ষর কমপক্ষে 2 বার হয়।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • একটি ফাংশন rc() সংজ্ঞায়িত করুন। এটি lst লাগবে
  • c :=সমস্ত অক্ষর এবং তাদের উপস্থিতি সহ একটি মানচিত্র
  • acc :=একটি নতুন তালিকা
  • উত্তর :=0
  • বৈধ :=সত্য
  • lst-এ প্রতিটি x এর জন্য, করুন
    • যদি c[x]
    • বৈধ :=মিথ্যা
    • উত্তর :=সর্বোচ্চ উত্তর এবং rc(acc)
    • acc :=একটি নতুন তালিকা
  • অন্যথায়,
    • acc-এর শেষে x ঢোকান
  • যদি সত্য হয়, তাহলে
    • acc এর রিটার্ন সাইজ
  • অন্যথায়,
    • উত্তর :=সর্বোচ্চ উত্তর এবং rc(acc)
    • উত্তর ফেরত দিন
  • প্রধান পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন -
  • রিটার্ন করুন (s-এর প্রতিটি অক্ষর রূপান্তর করে একটি নতুন তালিকা)
  • আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

    উদাহরণ

    from collections import Counter
    class Solution:
          def solve(self, s, k):
             def rc(lst):
                c = Counter(lst)
                acc = []
                ans = 0
                valid = True
                for x in lst:
                   if c[x] < k:
                      valid = False
                      ans = max(ans, rc(acc))
                      acc = []
                   else:
                      acc.append(x)
                   if valid:
                      return len(acc)
                   else:
                      ans = max(ans, rc(acc))
                   return ans
                return rc(list(s))
    ob = Solution()
    s = "aabccddeeffghij"
    k = 2
    print(ob.solve(s, k))

    ইনপুট

    "aabccddeeffghij", 2

    আউটপুট

    8

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

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

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

    4. পাইথনে একটি প্রদত্ত স্ট্রিং-এ k অনন্য অক্ষর সহ দীর্ঘতম সাবস্ট্রিং খুঁজুন