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