কম্পিউটার

পাইথনে দীর্ঘতম সুষম অনুসৃতির দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের একটি স্ট্রিং আছে যার মধ্যে বন্ধনী বন্ধনী আছে "(" এবং ")", আমাদের সুষম বন্ধনীর দীর্ঘতম অনুসারীর দৈর্ঘ্য খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুটটি s ="())(()(" এর মত হয়, তাহলে আউটপুট হবে 4, যেহেতু আমরা "()()"

এর মত পরবর্তিটি নিতে পারি।

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

  • res :=0

  • n :=s এর আকার

  • বন্ধ করুন :=0

  • n - 1 থেকে 0 রেঞ্জে i এর জন্য, 1 দ্বারা হ্রাস করুন, করুন

    • যদি s[i] ")" এর মত হয়, তাহলে

      • বন্ধ :=বন্ধ + 1

    • অন্যথায়,

      • যদি বন্ধ হয়> 0, তাহলে

        • বন্ধ :=বন্ধ - 1

        • res :=res + 2

  • রিটার্ন রিটার্ন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

class Solution:
   def solve(self, s):
      res = 0
      n = len(s)
      close = 0
      for i in range(n - 1, -1, -1):
         if s[i] == ")":
            close += 1
         else:
            if close > 0:
               close -= 1
                  res += 2
            return res
ob = Solution()
s = "())(()("
print(ob.solve(s))

ইনপুট

"())(()("
)

আউটপুট

4

  1. পাইথনে দীর্ঘতম ক্রমবর্ধমান অনুক্রমের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

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

  3. পাইথনে দীর্ঘতম ধারাবাহিক অনুক্রমের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে দীর্ঘতম অ্যানাগ্রাম অনুগামীর দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম