ধরুন আমাদের একটি স্ট্রিং আছে যার মধ্যে বন্ধনী বন্ধনী আছে "(" এবং ")", আমাদের সুষম বন্ধনীর দীর্ঘতম অনুসারীর দৈর্ঘ্য খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি 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