কম্পিউটার

কার্ডগুলি সাজানোর প্রোগ্রাম যাতে সেগুলি পাইথনে আরোহী ক্রমে প্রকাশ করা যায়


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

সুতরাং, ইনপুট যদি কার্ডের মত হয় =[1, 2, 3, 4, 5, 6, 7, 8], তাহলে আউটপুট হবে [1, 5, 2, 7, 3, 6, 4, 8], যেহেতু 1 সরানো হয়েছে এবং 5 পিছনে সরানো হয়েছে, বর্তমান পরিস্থিতি [2, 7, 3, 6, 4, 8, 5]। 2 সরানো হয়েছে এবং 7 পিছনে সরানো হয়েছে, বর্তমান পরিস্থিতি [3, 6, 4, 8, 5, 7] 3 সরানো হয়েছে এবং 6 পিছনে সরানো হয়েছে, বর্তমান পরিস্থিতি [4, 8, 5, 7, 6] 4 সরানো হয়েছে এবং 8 পিছনে সরানো হয়েছে, বর্তমান পরিস্থিতি [5, 7, 6, 8] 5 সরানো হয়েছে এবং 7 পিছনে সরানো হয়েছে, বর্তমান পরিস্থিতি [6, 8, 7]। 6 সরানো হয়েছে এবং 8 পিছনে সরানো হয়েছে, বর্তমান পরিস্থিতি [7, 8]। 7 সরানো হয়েছে এবং শুধুমাত্র একটি কার্ড আছে [8]। তারপর [8]

সরান

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

  • তালিকা কার্ডগুলি সাজান
  • idx:=0 থেকে কার্ডের দৈর্ঘ্যের উপাদান সহ একটি তালিকা
  • order:=একটি নতুন তালিকা
  • q:=একটি সারি এবং idx-এর উপাদান সন্নিবেশ করান
  • যখন q অ-শূন্য, do
    • q এর বাম থেকে উপাদান মুছুন এবং ক্রমানুসারে সন্নিবেশ করুন
    • যদি q অ-শূন্য হয়, তাহলে
  • উত্তর:=আকারের কার্ডের একটি তালিকা তৈরি করুন এবং 0 দিয়ে পূরণ করুন
  • প্রতিটি উপাদানের জন্য i অর্ডার থেকে এবং কার্ড থেকে কার্ড, করুন
    • উত্তর[i]:=কার্ড
  • উত্তর ফেরত দিন

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

উদাহরণ

from collections import deque
class Solution:
   def solve(self, cards):
      cards.sort()
      idx=[i for i in range(len(cards))]
      order=[]
      q=deque(idx)
      while q:
         order.append(q.popleft())
         if q: q.append(q.popleft())
      ans=[0 for _ in cards]
      for i,card in zip(order,cards):
         ans[i]=card
      return ans
ob = Solution()
print(ob.solve([1, 2, 3, 4, 5, 6, 7, 8]))

ইনপুট

[1, 2, 3, 4, 5, 6, 7, 8]

আউটপুট

[1, 5, 2, 7, 3, 6, 4, 8]

  1. n rooks যাতে তারা পাইথনে একে অপরকে আক্রমণ করতে না পারে সেজন্য এন রুকগুলিকে সাজানোর উপায় খুঁজে বের করার জন্য প্রোগ্রাম

  2. পাইথনে সংখ্যাগুলিকে আরোহী বা অবরোহী ক্রমে সাজানোর জন্য সর্বনিম্ন খরচ খুঁজে বের করার প্রোগ্রাম

  3. দীর্ঘতম দৈর্ঘ্য খুঁজে বের করার জন্য প্রোগ্রাম, যা পাইথনে দেওয়া অক্ষর ব্যবহার করে তৈরি করা যেতে পারে

  4. পাইথন প্রোগ্রাম বাক্যের শব্দগুলোকে আরোহী ক্রমে সাজাতে