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

पायथन में जांचें कि क्या सभी को सीट मिल सकती है या नहीं


मान लीजिए हमारे पास एक संख्या n है, जहां n लोग सीट खोज रहे हैं। हमारे पास बिट्स की एक सूची भी है जहां 1 पहले से भरी हुई सीट को दर्शाता है और 0 खाली सीट को। कोई भी दो लोग एक-दूसरे के बगल में नहीं बैठ सकते, इसलिए हमें जांचना होगा कि क्या सभी n लोगों को सीट मिल सकती है या नहीं।

उदाहरण के लिए, यदि इनपुट है n = 2 और seats = [1, 0, 0, 0, 1, 0, 0], तो आउटपुट True होगा, क्योंकि वे इंडेक्स 2 और 6 पर बैठ सकते हैं।

समाधान दृष्टिकोण

इस समस्या को हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • seats सूची की शुरुआत में 0 जोड़ें और अंत में [0, 1] जोड़ें
  • res := 0, gap := 0 इनिशियलाइज़ करें
  • seats में प्रत्येक तत्व i के लिए लूप चलाएं:
    • यदि i 0 के बराबर है, तो gap को 1 से बढ़ाएं
    • अन्यथा जब gap > 0 हो, तो:
      • res में (gap - 1) // 2 का फ्लोर मान जोड़ें
      • gap को 0 पर रीसेट करें
  • यदि res >= n तो True लौटाएं, अन्यथा False

उदाहरण कोड

def solve(n, seats):
    seats = [0] + seats + [0, 1]
    res = 0
    gap = 0
    for i in seats:
        if i == 0:
            gap += 1
        elif gap > 0:
            res += (gap - 1) // 2
            gap = 0
    return res >= n

n = 2
seats = [1, 0, 0, 0, 1, 0, 0]
print(solve(n, seats))

इनपुट

2, [1, 0, 0, 0, 1, 0, 0]

आउटपुट

True
  1. Python में दो ट्री नोड्स को स्वैप करके बनाए जा सकते हैं या नहीं, इसकी जांच करने का प्रोग्राम Python में दो ट्री नोड्स को स्वैप करके बनाए जा सकते हैं या नहीं, इसकी जांच करने का प्रोग्राम

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

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

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

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

    समस्या विवरण एक खाली सूची दी गई है। हमारा कार्य जांचना है कि यह सूची खाली है या नहीं। यहां हम जांचने का एक निहित तरीका उपयोग करते हैं। एल्गोरिदम हम एक खाली सूची लेते हैं। फिर जांचें कि यदि सूची खाली है तो 1 लौटाएं अन्यथा 0। उदाहरण कोड # खाली सूची की जांच के लिए पायथन कोड def checklist(A): if