ধরুন আমাদের একটি স্ট্রিং আছে যার মধ্যে বন্ধনী "(" এবং ")" রয়েছে। আমাদের পরীক্ষা করতে হবে বন্ধনীগুলি সুষম কিনা।
সুতরাং, যদি ইনপুট s ="(()())(())" এর মত হয়, তাহলে আউটপুট হবে True
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- num_open :=0
- প্রতিটি অক্ষরের জন্য c s, do
- যদি c ')' এর মত হয়, তাহলে
- যদি num_open <0, তারপর
- num_open :=num_open - 1
- অন্যথায়,
- মিথ্যে ফেরত দিন
- অন্যথায়,
- num_open :=num_open + 1
- যদি num_open <0, তারপর
- যদি c ')' এর মত হয়, তাহলে
- num_open এর বিপরীতে ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution:
def solve(self, s):
num_open = 0
for c in s:
if c == ')':
if num_open < 0:
num_open -= 1
else:
return False
else:
num_open += 1
return not num_open
ob = Solution()
print(ob.solve("(()())(())")) ইনপুট
"(()())(())"
আউটপুট
False