কম্পিউটার

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


ধরুন আমাদের কাছে পুশ নামক সংখ্যার একটি তালিকা আছে এবং পপ নামক সংখ্যার আরেকটি তালিকা আছে, আমাদের পরীক্ষা করতে হবে যে এটি স্ট্যাক পুশ এবং পপ অ্যাকশনের একটি বৈধ ক্রম কিনা।

সুতরাং, যদি ইনপুটটি পুশের মত হয় =[1, 2, 5, 7, 9] পপস =[2, 1, 9, 7, 5], তাহলে আউটপুট হবে True, যেমন আমরা পুশ করতে পারি [1, 2] প্রথম তারপর তাদের উভয় পপ. তারপর [5, 7, 9] চাপুন এবং সেগুলিকে পপ করুন।

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

  • s :=একটি নতুন স্ট্যাক
  • i :=0
  • পুশের প্রতিটি এলির জন্য, করুন
    • এসে ইলে ধাক্কা দিন
    • যদিও s> 0 এবং pops[i] এর আকার s-এর একই শীর্ষ উপাদান, do
      • s থেকে শীর্ষ উপাদান মুছুন
      • i :=i + 1
  • s এর আকার 0 এর মত হলে সত্য ফেরত দিন, অন্যথায় মিথ্যা

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

উদাহরণ

class Solution:
   def solve(self, pushes, pops):
      s = []
      i = 0

      for ele in pushes:
         s.append(ele)

         while len(s) > 0 and pops[i] == s[-1]:
            s.pop()
            i += 1

      return len(s) == 0

ob = Solution()
pushes = [1, 2, 5, 7, 9]
pops = [2, 1, 9, 7, 5]
print(ob.solve(pushes, pops))

ইনপুট

[1, 2, 5, 7, 9], [2, 1, 9, 7, 5]

আউটপুট

True

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

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

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

  4. একটি প্রদত্ত স্ট্রিং কীওয়ার্ড কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম