ধরুন আমাদের বন্ধনীর একটি স্ট্রিং আছে; স্ট্রিংটি সঠিক করার জন্য সর্বনিম্ন বন্ধনীর সংখ্যা গণনা করার জন্য আমাদের একটি ফাংশন লিখতে হবে (প্রতিটি খোলা বন্ধনী শেষ পর্যন্ত বন্ধ হয়ে যায়)।
সুতরাং, যদি ইনপুটটি "(()))(" এর মত হয়, তাহলে আউটপুট হবে 2, যেমন সঠিক স্ট্রিং "(())", রিমুভ ")(।"
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- মোট :=0, তাপমাত্রা :=0
- s এর প্রতিটি p এর জন্য, করুন
- যদি p "(" এর মত হয়, তাহলে
- মোট :=মোট + 1
- অন্যথায় যখন p ")" এবং মোট 0 না হলে
- মোট :=মোট - 1
- অন্যথায়,
- temp :=temp + 1
- যদি p "(" এর মত হয়, তাহলে
- মোট রিটার্ন + টেম্প
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, s): total = 0 temp = 0 for p in s: if p == "(": total += 1 elif p == ")" and total: total -= 1 else: temp += 1 return total + temp ob1 = Solution() string = "(()))(" print(ob1.solve(string))
ইনপুট
"(()))("
আউটপুট
2