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

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


মনে করুন s একটি স্ট্রিং যা ব্যালেন্সড প্যারেনথেসিস "(" এবং ")" ধারণ করে। আমাদের এটিকে সর্বোচ্চ সংখ্যক ব্যালেন্সড গ্রুপে ভাগ করতে হবে।

উদাহরণস্বরূপ, "(()())()(())" হলে আউটপুট ['(()())', '()', '(())']।

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

  • temp := খালি স্ট্রিং
  • groups := নতুন তালিকা
  • count := 0
  • প্রতিটি ক্যারেক্টার b s-এ,
    • যদি count == 0 এবং temp-এর দৈর্ঘ্য > 0, তবে
      • groups-এ temp যোগ করুন
      • temp := খালি স্ট্রিং
    • temp += b
    • যদি b == '(', count++
    • অন্যথায়, count--
  • groups-এ temp যোগ করুন
  • groups ফেরত দিন

উদাহরণ

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. পাইথন প্রোগ্রাম: তিন সংখ্যার মধ্যে সর্বোচ্চ (Maximum of Three)