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

यह जांचने के लिए कार्यक्रम कि बोर्ड वैध एन क्वीन समाधान है या नहीं, पायथन में

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

तो, अगर इनपुट पसंद है

यह जांचने के लिए कार्यक्रम कि बोर्ड वैध एन क्वीन समाधान है या नहीं, पायथन में

तो आउटपुट सही होगा

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

  • n :=मैट्रिक्स की पंक्ति गणना
  • पंक्तियाँ:=एक नया सेट, कॉलम:=एक नया सेट, डायग्स:=एक नया सेट, rev_diags:=एक नया सेट
  • मैं के लिए 0 से n की सीमा में, करते हैं
    • जे के लिए 0 से n की सीमा में, करें
      • यदि मैट्रिक्स [i, j] 1 है, तो
        • पंक्तियों में i डालें
        • कोल्स में j डालें
        • डायग्स में (i - j) डालें
        • rev_diags में (i + j) डालें
  • सही लौटें जब पंक्तियों का आकार, कॉलम का आकार, डायग का आकार, rev_diags का आकार n के समान हो, अन्यथा गलत

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:

उदाहरण

class Solution:
   def solve(self, matrix):
      n = len(matrix)

      rows = set()
      cols = set()
      diags = set()
      rev_diags = set()

      for i in range(n):
         for j in range(n):
            if matrix[i][j]:
               rows.add(i)
               cols.add(j)
               diags.add(i - j)
               rev_diags.add(i + j)

      return len(rows) == len(cols) == len(diags) == len(rev_diags) == n

ob = Solution()
matrix = [
   [0, 0, 0, 1, 0],
   [0, 1, 0, 0, 0],
   [0, 0, 0, 0, 1],
   [0, 0, 1, 0, 0],
   [1, 0, 0, 0, 0]
]
print(ob.solve(matrix))

इनपुट

matrix = [    
   [0, 0, 0, 1, 0],    
   [0, 1, 0, 0, 0],    
   [0, 0, 0, 0, 1],    
   [0, 0, 1, 0, 0],    
   [1, 0, 0, 0, 0]
]

आउटपुट

True

  1. पायथन में बाइनरी ट्री BST है या नहीं, यह जांचने के लिए प्रोग्राम

    मान लीजिए हमारे पास बाइनरी ट्री है; हमें यह जांचना होगा कि यह बाइनरी सर्च ट्री है या नहीं। जैसा कि हम जानते हैं कि बीएसटी में निम्नलिखित गुण होते हैं - इसके बाएँ उपप्रकार के सभी नोड वर्तमान नोड मान से छोटे हैं इसके दाहिने सबट्री के सभी नोड वर्तमान नोड मान से बड़े हैं ये गुण सभी नोड्स के लिए पुनरावर

  1. पायथन में बाइनरी ट्री पूर्ण है या नहीं यह जांचने के लिए प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें यह जांचना होगा कि यह पूर्ण बाइनरी ट्री है या नहीं। जैसा कि हम एक पूर्ण बाइनरी ट्री में जानते हैं कि संभवतः अंतिम को छोड़कर स्तर नोड्स से भरे हुए हैं और अंतिम स्तर में सभी नोड्स जितना संभव हो सके छोड़े गए हैं। तो, अगर इनपुट पसंद है तो आउटपुट सही होगा इ

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

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