কম্পিউটার

পাইথনে বন্ধনী বৈধ করতে ন্যূনতম যোগ করুন


ধরুন আমাদের '(' এবং ')' বন্ধনীর একটি স্ট্রিং S আছে, আমরা যেকোনো অবস্থানে সর্বনিম্ন বন্ধনীর সংখ্যা যোগ করি, যাতে ফলস্বরূপ বন্ধনী স্ট্রিংটি বৈধ হয়। একটি বন্ধনী স্ট্রিং বৈধ যদি এবং শুধুমাত্র যদি −

হয়
  • এটি খালি স্ট্রিং
  • এটি XY (Y এর সাথে X সংযুক্ত) হিসাবে লেখা যেতে পারে, যেখানে X এবং Y বৈধ স্ট্রিং
  • এটি (A) হিসাবে লেখা যেতে পারে, যেখানে A একটি বৈধ স্ট্রিং।

তাই যদি স্ট্রিংটি "()))((" এর মত হয়, তাহলে স্ট্রিংটিকে বৈধ করতে আমাদের আরও 4টি বন্ধনী যুক্ত করতে হবে৷

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • যদি S খালি হয়, তাহলে 0 ফেরত দিন
  • count :=0, temp হল একটি অ্যারে, temp_counter :=0
  • আমি S
      তে
    • যদি আমি বন্ধনী খুলছি, তাহলে টেম্পে i ঢোকান
    • অন্যথায়
      • যখন temp এর দৈর্ঘ্য> 0 এবং এর শেষ উপাদানটি বন্ধনী খুলছে, তখন temp-এর শেষ উপাদানটি মুছে দিন, অন্যথায় temp-এ i ঢোকান
  • তাপের আকার ফেরত দিন।

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

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. একটি পাইথন স্ট্রিং এর পিছনের জিরো যোগ করুন

  2. পাইথনে পূর্ণসংখ্যার অ্যারে-ফর্মে যোগ করুন

  3. পাইথন স্ট্রিং-এ লিডিং জিরোস যোগ করুন

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