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

पायथन में शूरवीरों का हमला

मान लीजिए कि हमारे पास एक द्वि-आयामी बाइनरी मैट्रिक्स है, जो एक आयताकार शतरंज बोर्ड का प्रतिनिधित्व करता है, यहां 0 खाली सेल के लिए है और 1 नाइट के लिए है। नाइट दो वर्गों को क्षैतिज रूप से और एक वर्ग लंबवत, या दो वर्ग लंबवत और एक वर्ग क्षैतिज रूप से स्थानांतरित करने में सक्षम है (जैसे शतरंज बोर्ड नाइट)। हमें यह जांचना होगा कि कोई दो शूरवीर एक दूसरे पर हमला कर रहे हैं या नहीं।

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

0 0 0 0 0
0 1 0 0 0
0 0 0 1 0

तब आउटपुट ट्रू होगा

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

  • पंक्ति, कॉलम:=मैट्रिक्स की पंक्ति गणना, मैट्रिक्स की कॉलम गणना
  • r के लिए 0 से पंक्ति-1 की श्रेणी में, करें
    • सी श्रेणी में 0 से col-1 के लिए, करें
      • यदि A[r][c] शून्य नहीं है, तो
        • प्रत्येक एनआर के लिए, एनसी में [(आर+1, सी-2), (आर+1, सी+2), (आर+2, सी-1), (आर+2, सी+1)] , करो
          • यदि एनआर पंक्ति की सीमा में है और एनसी कर्नल की सीमा में है और ए [एनआर, एनसी] गैर-शून्य है, तो
            • सही लौटें
  • झूठी वापसी

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

उदाहरण

class Solution:
   def solve(self, A):
      row, col = len(A), len(A[0])
      for r in range(row):
         for c in range(col):
            if A[r][c]:
               for nr, nc in ((r+1, c-2), (r+1, c+2), (r+2, c-1), (r+2, c+1)):
                  if 0 <= nr < row and 0 <= nc <col and
                     A[nr][nc]:
                     return True
      return False
ob = Solution()
mat = [[0,0,0,0,0],
[0,1,0,0,0],
[0,0,0,1,0]]
print(ob.solve(mat))

इनपुट

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

आउटपुट

True

  1. जांचें कि क्या रानी पायथन में शतरंज की बिसात पर दिए गए सेल पर हमला कर सकती है

    मान लीजिए कि हमारे पास रानी और प्रतिद्वंद्वी के लिए शतरंज की बिसात पर दो निर्देशांक हैं। ये बिंदु क्रमशः Q और O हैं। हमें यह जांचना होगा कि रानी प्रतिद्वंद्वी पर हमला कर सकती है या नहीं। जैसा कि हम जानते हैं कि रानी एक ही पंक्ति, एक ही स्तंभ और तिरछे आक्रमण कर सकती है। इसलिए, यदि इनपुट Q =(1, 1) O

  1. issuperset () पायथन में

    इस लेख में, हम पायथन में issuperset() और विभिन्न क्षेत्रों में इसके कार्यान्वयन के बारे में जानेंगे। यह विधि बूलियन ट्रू लौटाती है यदि एक सेट बी के सभी तत्वों में सभी तत्व सेट ए होते हैं जो एक तर्क के रूप में पारित होते हैं और यदि ए के सभी तत्व बी में मौजूद नहीं होते हैं तो झूठा रिटर्न देता है। इस

  1. पायथन में क्विन

    क्विन एक प्रोग्राम है, जो कोई इनपुट नहीं लेता है, लेकिन यह आउटपुट का उत्पादन करता है। यह इसका अपना सोर्स कोड दिखाएगा। इसके अतिरिक्त, क्विन की कुछ शर्तें हैं। हम प्रोग्राम के अंदर सोर्स कोड फ़ाइल नहीं खोल सकते। उदाहरण कोड a=a=%r;print (a%%a);print (a%a) आउटपुट a=a=%r;print (a%%a);print (a%a) य