ধরুন আমাদের একটি স্ট্রিং আছে যাতে সুষম বন্ধনী রয়েছে "(" এবং ")", আমাদের সেগুলিকে সর্বাধিক সংখ্যক সুষম গোষ্ঠীতে বিভক্ত করতে হবে৷
সুতরাং, যদি ইনপুটটি "(()())()(())" এর মত হয়, তাহলে আউটপুট হবে ['(()())', '()', '(())']
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- temp :=ফাঁকা স্ট্রিং
- গোষ্ঠী :=একটি নতুন তালিকা
- গণনা :=0
- s তে b প্রতিটি অক্ষরের জন্য, করুন
- যদি গণনা 0 এর মত হয় এবং তাপমাত্রা> 0 এর আকার হয়, তাহলে
- গোষ্ঠীর শেষে temp সন্নিবেশ করান
- temp :=ফাঁকা স্ট্রিং
- temp :=temp concatenate b
- যদি b '(' এর মত হয়, তাহলে
- গণনা :=গণনা + 1
- অন্যথায়,
- গণনা :=গণনা - 1
- যদি গণনা 0 এর মত হয় এবং তাপমাত্রা> 0 এর আকার হয়, তাহলে
- গোষ্ঠীর শেষে temp সন্নিবেশ করান
- দল ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution:
def solve(self, s):
temp = ''
groups = []
count = 0
for b in s:
if count == 0 and len(temp) > 0:
groups.append(temp)
temp = ''
temp += b
if b == '(':
count += 1
else:
count -= 1
groups.append(temp)
return groups
s = "(()())()(())"
ob = Solution()
print(ob.solve(s)) ইনপুট
"(()())()(())"
আউটপুট
['(()())', '()', '(())']