মান ল করুন একটি প্যarethেসিসের স্ট্রিং, আমাদের একটি ফাংশন লিখতে হবে যা ন্যূনতম কতটি প্যarethেসিস মুছে ফেললে স্ট্রিংটি সঠিক হবে (প্রতিটি ওপেন প্যarethেসيس শেষে ক্লোজ হবে) তা গণনা করে।
যদি ইনপুট হয় "(()))(", তবে আউটপুট হবে ২, কারণ সঠিক স্ট্রিং হবে "(())", ")(" মুছে ফেলতে হবে।
এটি সমাধান করতে আমরা নিম্নলিখিত ধাপগুলি অনুসরণ করব:
- total := 0, temp := 0
- s-এ থাকা প্রতিটি p-এর জন্য:
- যদি p == "(" হয়, total := total + 1
- অন্যথায় যদি p == ")" এবং total != 0 হয়, total := total - 1
- অন্যথায়, temp := temp + 1
- total + temp ফেরত দিন।
বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশনটি দেখুন:
উদাহরণ
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