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

पायथन प्रोग्राम यह जांचने के लिए कि हम क्यूब्स को ढेर कर सकते हैं या नहीं

मान लीजिए कि हमारे पास n विभिन्न घनों के आकार वाली एक सरणी संख्या है, उन्हें क्षैतिज रूप से रखा गया है। हमें घनों का ढेर लंबवत बनाना है। नया घन अनुसरण करना चाहिए -

  • यदि ith घन jth घन के शीर्ष पर है, तो jth घन की भुजा की लंबाई ith एक की भुजा की लंबाई के बराबर या अधिक होनी चाहिए।

जब हम लंबवत ढेर बना रहे होते हैं, तो हम केवल बायीं ओर या दाहिनी ओर से घन ले सकते हैं लेकिन बीच से नहीं। हमें जांचना होगा कि हम उन्हें ढेर कर सकते हैं या नहीं।

इसलिए, यदि इनपुट nums =[1,2,3,7,8] जैसा है, तो आउटपुट ट्रू होगा क्योंकि हम उन्हें सफलतापूर्वक ढेर करने के लिए दाएं से बाएं बॉक्स ले सकते हैं।

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

  • n :=अंकों का आकार
  • d :=अंकों के तत्वों से एक डबल एंडेड कतार बनाएं
  • झंडा :=सच
  • पिछला :=0
  • जबकि d खाली नहीं है, करें
    • पहला :=d[0]
    • अंतिम:=d[n-1]
    • यदि पिछला 0 के समान नहीं है और (प्रथम> पिछला या अंतिम> पिछला) , तो
      • झंडा :=झूठा
      • लूप से बाहर आएं
    • अगर पहले>=आखिरी, फिर
      • पिछला :=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. पायथन में नोड्स की अदला-बदली से दो पेड़ बन सकते हैं या नहीं, इसकी जाँच करने के लिए कार्यक्रम

    मान लीजिए कि हमारे पास दो पेड़ हैं, हमें यह जांचना होगा कि क्या हम किसी भी नोड के बाएँ और दाएँ सबट्री को कितनी भी बार स्वैप करके पहले पेड़ को दूसरे में बदल सकते हैं। तो, अगर इनपुट पसंद है तो आउटपुट सही होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - que1 :=शुरुआत में root0 वाली एक कतार

  1. पायथन में दिया गया ग्राफ द्विदलीय है या नहीं, यह जांचने के लिए कार्यक्रम

    मान लीजिए कि हमारे पास एक अप्रत्यक्ष ग्राफ है, हमें यह जांचना है कि ग्राफ द्विदलीय है या नहीं। जैसा कि हम जानते हैं कि एक ग्राफ द्विदलीय होता है जब हम ग्राफ के नोड्स को दो सेट ए और बी में विभाजित कर सकते हैं जैसे कि ग्राफ के प्रत्येक किनारे {यू, वी} में ए में एक नोड और बी में दूसरा नोड वी होता है।

  1. एक सूची खाली है या नहीं, यह जांचने के लिए पायथन प्रोग्राम?

    एक खाली सूची दी। हमारा काम मौसम की जांच करना है कि यह सूची खाली है या नहीं। यहाँ हम जाँच करते हैं जाँच का एक निहित तरीका है। एल्गोरिदम Step 1: We take an empty list. Step 2: then check if list is empty then return 1 otherwise 0. उदाहरण कोड # Python code to check for empty list def checklist(A):