মনে করুন s একটি স্ট্রিং যা শুধু "(" এবং ")" প্যারেনথেসিস ধারণ করে। প্যারেনথেসিসগুলো ব্যালেন্সড কিনা যাচাই করতে হবে।
উদাহরণস্বরূপ, "(()())(())" হলে আউটপুট True (কिंবা False কোড অনুযায়ী) - নোট: প্রদত্ত কোডে বাগ আছে, num_open < 0 চেক করা হয়েছে যা ভুল।
সমাধানের ধাপসমূহ
- num_open := 0
- প্রতিটি ক্যারেক্টার c s-এ,
- যদি c == ')',
- যদি num_open > 0, num_open--
- অন্যথায় False ফেরত দিন
- অন্যথায়, num_open++
- যদি c == ')',
- not num_open ফেরত দিন (যদি num_open==0 তবে True)
উদাহরণ
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