কম্পিউটার

পাইথনে বিভিন্ন বন্ধনী সুষম এবং সুগঠিত কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম


ধরুন আমাদের বন্ধনীর একটি স্ট্রিং (গোলাকার, কোঁকড়া এবং বর্গাকার) আছে, আমাদের পরীক্ষা করতে হবে যে বন্ধনীগুলি সুষম (সুগঠিত) কি না।

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

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

  • স্ট্যাক :=একটি নতুন তালিকা
  • d :=কী-মান জোড়া সহ একটি হ্যাশ মানচিত্র ('}', '{'),('),'('), (']', '[')
  • প্রতিটি অক্ষরের জন্য c s, do
    • যদি c '}])' এর যেকোনো একটি হয়, তাহলে
      • যদি স্ট্যাক খালি হয় বা স্ট্যাকের উপরের অংশটি d[c] এর মতো না হয়, তাহলে
        • মিথ্যে ফেরত দিন
      • স্ট্যাক থেকে পপ
    • অন্যথায়,
      • স্ট্যাকের মধ্যে সি পুশ করুন
  • স্ট্যাক খালি হলে সত্য প্রত্যাবর্তন করুন, অন্যথায় মিথ্যা

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

উদাহরণ

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. প্রদত্ত ব্লকের তালিকা x =y লাইনের উপরে প্রতিসম নাকি পাইথনে নয় তা পরীক্ষা করার জন্য প্রোগ্রাম

  3. পাতার ক্রম দুটি পাতার সমান নাকি পাইথনে নয় তা পরীক্ষা করার জন্য প্রোগ্রাম

  4. প্রদত্ত গ্রাফটি পাইথনে দ্বিপক্ষীয় কি না তা পরীক্ষা করার জন্য প্রোগ্রাম