কম্পিউটার

পাইথনে সর্বোচ্চ সংখ্যক বন্ধনীর ভারসাম্যপূর্ণ গোষ্ঠী খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের একটি স্ট্রিং আছে যাতে সুষম বন্ধনী রয়েছে "(" এবং ")", আমাদের সেগুলিকে সর্বাধিক সংখ্যক সুষম গোষ্ঠীতে বিভক্ত করতে হবে৷

সুতরাং, যদি ইনপুটটি "(()())()(())" এর মত হয়, তাহলে আউটপুট হবে ['(()())', '()', '(())']

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

  • temp :=ফাঁকা স্ট্রিং
  • গোষ্ঠী :=একটি নতুন তালিকা
  • গণনা :=0
  • s তে b প্রতিটি অক্ষরের জন্য, করুন
    • যদি গণনা 0 এর মত হয় এবং তাপমাত্রা> 0 এর আকার হয়, তাহলে
      • গোষ্ঠীর শেষে temp সন্নিবেশ করান
      • temp :=ফাঁকা স্ট্রিং
    • temp :=temp concatenate b
    • যদি b '(' এর মত হয়, তাহলে
      • গণনা :=গণনা + 1
    • অন্যথায়,
      • গণনা :=গণনা - 1
  • গোষ্ঠীর শেষে temp সন্নিবেশ করান
  • দল ফেরত দিন

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

উদাহরণ

class Solution:
   def solve(self, s):
      temp = ''
      groups = []
      count = 0
      for b in s:
         if count == 0 and len(temp) > 0:
            groups.append(temp)
         temp = ''
         temp += b
         if b == '(':
            count += 1
         else:
            count -= 1
      groups.append(temp)
      return groups
s = "(()())()(())"
ob = Solution()
print(ob.solve(s))

ইনপুট

"(()())()(())"

আউটপুট

['(()())', '()', '(())']

  1. পাইথনে বন্ধুর সংযোগের একটি সেটে বন্ধু গোষ্ঠীর সংখ্যা খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে আমরা সর্বাধিক সংখ্যক কয়েন সংগ্রহ করতে পারি তা খুঁজে বের করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম একটি তালিকায় সবচেয়ে বড় সংখ্যা খুঁজে বের করতে

  4. পাইথন প্রোগ্রাম সর্বোচ্চ তিনটি।