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

পাইথনে বিভিন্ন ব্র্যাকেট ব্যালেন্সড ও ওয়েল-ফর্মড কিনা যাচাই করার প্রোগ্রাম


মনে করুন একটি স্ট্রিং আছে যা ব্র্যাকেট (রাউন্ড, কার্লি, স্কোয়ার) ধারণ করে। ব্র্যাকেটগুলো ব্যালেন্সড (ওয়েল-ফর্মড) কিনা যাচাই করতে হবে।

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

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

  • stack := নতুন তালিকা
  • d := হ্যাশ ম্যাপ {'}':'{', ')':'(', ']':'['}
  • প্রতিটি ক্যারেক্টার c s-এ,
    • যদি c '}])'-এ হয়,
      • যদি stack খালি হয় বা stack[-1] != d[c], False ফেরত দিন
      • stack.pop()
    • অন্যথায়, stack.append(c)
  • True ফেরত দিন যদি stack খালি হয়, অন্যথায় False

উদাহরণ

class Solution:
    def solve(self, s):
        stack = []
        d = {'}':'{',')':'(',']':'['}
        for c in s:
            if c in '}])':
                if not stack or stack[-1] != d[c]:
                    return False
                stack.pop()
            else:
                stack.append(c)
        return not stack

ob = Solution()
print(ob.solve("([()()]{[]})()"))

ইনপুট

"([()()]{[]})()"

আউটপুট

True
  1. পাইথন প্রোগ্রাম - পয়েন্টগুলোর কনকেভ পলিগন গঠন করে কিনা তা যাচাই করুন

  2. পাইথনে ব্লকের তালিকা y=x রেখা দিয়ে সিমেট্রিক কিনা যাচাই করার প্রোগ্রাম

  3. পাইথনে দুটি বাইনারি ট্রির লিফ সিকোয়েন্স মিল কিনা যাচাই

  4. পাইথনে গ্রাফ বাইপার্টাইট কিনা যাচাই করার প্রোগ্রাম