কম্পিউটার

স্ট্যাকের উপাদানগুলি পাইথনে জোড়া অনুসারে সাজানো হয়েছে কিনা তা পরীক্ষা করুন


ধরুন আমাদের কাছে সংখ্যার স্তুপ আছে; স্ট্যাকের মানগুলি জোড়া অনুসারে ধারাবাহিক কিনা তা আমাদের পরীক্ষা করতে হবে। এই জোড়া বৃদ্ধি বা হ্রাস হতে পারে. স্ট্যাকের একটি বিজোড় সংখ্যক মান থাকলে, শীর্ষ উপাদানটি একটি জোড়ার বাইরে থাকে। এবং চেক করার পরে আমাদের মূল স্ট্যাক সামগ্রীটি ধরে রাখা উচিত।

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

সুতরাং, যদি ইনপুটটি stk =[5, 6, -4, -5, 12, 11, 6, 7, 22] এর মতো হয়, তাহলে আউটপুটটি True হবে যেমন শীর্ষ উপাদান 22 সরানোর পরে, জোড়াগুলি হল [(5) , 6), (-4, -5), (12, 11), (6, 7)] সবগুলোই পরপর।

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

  • temp :=stk থেকে পপ উপাদান এবং temp এ পুশ করুন
  • স্ট্যাক stk সাফ করুন
  • পতাকা :=সত্য
  • যখন temp এর সাইজ> 1, do
    • আইটেম_প্রথম, আইটেম_সেকেন্ড :=তাপমাত্রার শীর্ষ দুটি উপাদান এবং সেগুলি পপ করুন
    • যদি |আইটেম_প্রথম - আইটেম_সেকেন্ড| 1 নয়, তারপর
      • পতাকা :=মিথ্যা
    • stk-এ item_first এবং item_second
    • ঠেলে দিন
  • যদি তাপমাত্রার আকার 1 এর মতো হয়, তাহলে
    • stk তে তাপমাত্রার শীর্ষে ঠেলে
  • রিটার্ন পতাকা

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

উদাহরণ কোড

def solve(stk):
   temp = stk[::-1]
   stk.clear()
 
   flag = True
   while len(temp) > 1: 
      item_first = temp[-1] 
      temp.pop() 
      item_second = temp[-1] 
      temp.pop() 
      if abs(item_first - item_second) != 1: 
         flag = False
 
      stk.append(item_first) 
      stk.append(item_second)
 
    if len(temp) == 1: 
      stk.append(temp[-1]) 
 
   return flag
   
stk = [5, 6, -4, -5, 12, 11, 6, 7, 22]
print(solve(stk))

ইনপুট

[5, 6, -4, -5, 12, 11, 6, 7, 22]

আউটপুট

True

  1. Python - একটি তালিকার সমস্ত উপাদান অভিন্ন কিনা তা পরীক্ষা করুন

  2. পাইথনে তালিকা বাছাই করা হয়েছে কিনা তা পরীক্ষা করুন

  3. পাইথন - একটি তালিকার সমস্ত উপাদান একই কিনা তা পরীক্ষা করুন

  4. পাইথন প্রোগ্রাম উপাদানের দৈর্ঘ্য অনুযায়ী একটি তালিকা সাজাতে?