কম্পিউটার

পাইথন প্রোগ্রাম আমরা কিউব পাইল আপ করতে পারি কি না তা পরীক্ষা করতে


ধরুন আমাদের একটি অ্যারে সংখ্যা আছে যেখানে n বিভিন্ন কিউবের আকার রয়েছে, সেগুলি অনুভূমিকভাবে স্থাপন করা হয়েছে। আমরা উল্লম্বভাবে কিউব একটি গাদা করতে হবে। নতুন কিউব অনুসরণ করা উচিত −

  • যদি ith কিউব jth কিউবের উপরে থাকে, তাহলে jth ওয়ানের পাশের দৈর্ঘ্য অবশ্যই ith ওয়ানের পাশের দৈর্ঘ্যের বেশি বা সমান হতে হবে।

যখন আমরা উল্লম্ব গাদা তৈরি করছি, তখন আমরা কেবল বাম দিক বা ডান দিক থেকে কিউব নিতে পারি কিন্তু মাঝখান থেকে নয়। আমরা তাদের স্তূপ করতে পারি কিনা তা আমাদের পরীক্ষা করতে হবে৷

সুতরাং, যদি ইনপুটটি nums =[1,2,3,7,8] এর মত হয়, তাহলে আউটপুট হবে True কারণ আমরা ডান থেকে বামে বাক্সগুলিকে সফলভাবে পাইল করতে পারি৷

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

  • n :=সংখ্যার আকার
  • d :=সংখ্যার উপাদানগুলি থেকে একটি ডবল শেষ সারি তৈরি করুন
  • পতাকা :=সত্য
  • পূর্ববর্তী :=0
  • যখন d খালি নয়, কর
    • প্রথম :=d[0]
    • শেষ :=d[n-1]
    • যদি prev 0 এর মত না হয় এবং (first> prev বা last> prev) , তাহলে
      • পতাকা :=মিথ্যা
      • লুপ থেকে বেরিয়ে আসুন
    • যদি প্রথম>=শেষ, তারপর
      • prev :=d এর বাম আইটেম, এবং d থেকে মুছে ফেলুন
    • অন্যথায়,
      • পূর্ববর্তী :=d এর শেষ আইটেম এবং d থেকে মুছে ফেলুন
  • যদি পতাকা সত্য হয়, তাহলে
    • সত্য ফেরান
  • অন্যথায়,
    • মিথ্যে ফেরত দিন

উদাহরণ

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

from collections import deque
def solve(nums):
   n = len(nums)
   d = deque(nums)
   flag = True
   prev = 0
   while d:
      first = d[0]
      last = d[-1]
      if prev != 0 and (first > prev or last > prev):
         flag = False
         break
      if first >= last:
         prev = d.popleft()
      else:
         prev = d.pop()
   if flag:
      return True
   else:
      return False

nums = [1,2,3,7,8]
print(solve(nums))

ইনপুট

[1,2,3,7,8]

আউটপুট

True

  1. পাইথনে নোড অদলবদল করে দুটি গাছ তৈরি করা যায় কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

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

  3. একটি প্রদত্ত স্ট্রিং Heterogram কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি তালিকা খালি কি না পরীক্ষা করতে?