Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

कार्ड को व्यवस्थित करने का कार्यक्रम ताकि उन्हें पायथन में आरोही क्रम में प्रकट किया जा सके

मान लीजिए हमारे पास कार्डों की एक सूची है, और हम कार्डों को इस तरह से ऑर्डर करना चाहते हैं कि वे आरोही क्रम में प्रकट हों। जैसा कि हम जानते हैं, कार्ड इस तरह से प्रकट होते हैं: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]

remove को हटा दें

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • सूची कार्ड क्रमबद्ध करें
  • idx:=0 से लेकर कार्ड की लंबाई तक के तत्वों वाली एक सूची
  • आदेश:=एक नई सूची
  • q:=एक कतार और idx के तत्व सम्मिलित करें
  • जबकि q गैर-शून्य है, करें
    • q के बाईं ओर से तत्व हटाएं और क्रम में डालें
    • यदि q शून्य नहीं है, तो
  • उत्तर:=आकार कार्डों की एक सूची बनाएं, और 0 से भरें
  • प्रत्येक तत्व के लिए मैं आदेश से और कार्ड से कार्ड, करते हैं
    • उत्तर[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 बदमाशों को व्यवस्थित करने के कई तरीके खोजने का कार्यक्रम ताकि वे पायथन में एक दूसरे पर हमला न कर सकें

    मान लीजिए कि हमारे पास एक संख्या n है जो n x n आकार की शतरंज की बिसात का प्रतिनिधित्व करती है। हमें यह पता लगाना है कि हम कितने तरीकों से बदमाशों को रख सकते हैं, ताकि वे एक दूसरे पर हमला न कर सकें। यहां दो तरीकों को अलग माना जाएगा यदि किसी एक तरीके से, शतरंज की बिसात के कुछ सेल पर कब्जा कर लिया जाता

  1. पायथन में दिए गए अक्षरों का उपयोग करके सबसे लंबी लंबाई ज्ञात करने का कार्यक्रम, जिसे बनाया जा सकता है

    मान लीजिए कि हमारे पास स्ट्रिंग्स की एक सूची है जिसे शब्द कहा जाता है और एक अन्य स्ट्रिंग जिसे अक्षर कहा जाता है, हमें शब्दों में सबसे लंबी स्ट्रिंग की लंबाई ज्ञात करनी है जो अक्षरों में वर्णों से बन सकती है। यदि कोई शब्द नहीं बनाया जा सकता है, तो 0 लौटाएं। यहां हम अक्षरों का पुन:उपयोग नहीं कर सकते

  1. वाक्य के शब्दों को आरोही क्रम में छाँटने के लिए पायथन कार्यक्रम

    वाक्य के शब्दों को आरोही क्रम में क्रमबद्ध करने के लिए, हमें सबसे पहले स्पेस का उपयोग करके वाक्य को शब्दों में विभाजित करना होगा। सरलता के लिए, हम केवल स्थान पर बंटेंगे और विराम चिह्न को वहीं रहने देंगे। इसे हटाने के लिए हम रिप्लेस या रेगेक्स का भी इस्तेमाल कर सकते हैं। एक बार जब हम वाक्य को विभाजि