কম্পিউটার টিউটোরিয়াল

পাইথনে প্যারেনথেসিস ভ্যালিড করতে মিনিমাম অ্যাড করুন

একটি স্ট্রিং S দেওয়া আছে যাতে শুধু '(' এবং ')' আছে। যেকোনো পজিশনে মিনিমাম সংখ্যক প্যারেনথেসিস অ্যাড করে স্ট্রিংটি ভ্যালিড করতে হবে। প্যারেনথেসিস স্ট্রিং ভ্যালিড হবে যদি:

  • সেটি খালি স্ট্রিং হয়
  • XY আকারে লেখা যায় (X এবং Y ভ্যালিড স্ট্রিং)
  • (A) আকারে লেখা যায় (A ভ্যালিড স্ট্রিং)

স্ট্রিং "()))((" হলে ৪টি প্যারেনথেসিস অ্যাড করতে হবে।

সমাধানের ধাপসমূহ

  • যদি S খালি হয়, 0 রিটার্ন
  • count := 0, temp := খালি অ্যারে, temp_counter := 0
  • S-এ প্রতিটি ক্যারেক্টার i-এর জন্য:
    • যদি i ওপেনিং প্যারেনথেসিস হয়, temp-এ অ্যাড করুন
    • অন্যথায়: যদি temp-র লাস্ট এলিমেন্ট ওপেনিং হয়, তবে সেটি পপ করুন, অন্যথায় i অ্যাড করুন
  • temp-এর সাইজ রিটার্ন

উদাহরণ

class Solution:
    def minAddToMakeValid(self, S):
        if not S:
            return 0
        count = 0
        temp = []
        temp_counter = 0
        for i in S:
            if i == '(':
                temp.append(i)
            else:
                if len(temp) > 0 and temp[len(temp)-1] == '(':
                    temp.pop(len(temp)-1)
                else:
                    temp.append(i)
        return len(temp)

ob = Solution()
print(ob.minAddToMakeValid("()))(("))

ইনপুট

"()))(("

আউটপুট

4
  1. পাইথন স্ট্রিংয়ে ট্রেইলিং জিরো (Trailing Zeros) যোগ করা

  2. পাইথনে অ্যারে ফর্ম ইন্টিজারে যোগ করা (Add to Array-Form of Integer in Python)

  3. পাইথনে স্ট্রিংয়ের শুরুতে লিডিং জেরো যোগ (Add Leading Zeros to String)

  4. পাইথনে একটি স্ট্রিং বৈধ কীওয়ার্ড কিনা চেক করা