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

पायथन का उपयोग करके सभी के साथ वर्ग सबमैट्रिस की संख्या गिनने का कार्यक्रम

मान लीजिए कि हमारे पास m x n बाइनरी मैट्रिक्स है, हमें यह पता लगाना है कि सभी में कितने वर्ग सबमैट्रिस हैं।

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

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

तो आउटपुट 15 होगा, क्योंकि भुजा 1 के 10 वर्ग हैं। भुजा 2 के 4 वर्ग और भुजा 3 का 1 वर्ग। तब वर्गों की कुल संख्या =10 + 4 + 1 =15.

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

  • अगर मैट्रिक्स में सिंगल है, तो

    • वापसी 1

  • पंक्तियाँ :=मैट्रिक्स की पंक्ति गणना

  • cols :=मैट्रिक्स की कॉलम संख्या[0]

  • परिणाम:=0

  • 0 से पंक्तियों -1 तक की पंक्ति के लिए करें

    • 0 से लेकर cols - 1 तक के कर्नल के लिए करें

      • यदि पंक्ति 0 के समान है या col 0 के समान है, तो

        • यदि मैट्रिक्स [पंक्ति, col] 1 के समान है, तो

          • परिणाम:=परिणाम + 1

        • अन्यथा जब मैट्रिक्स [पंक्ति, कॉल] 1 के समान हो, तो

          • वर्ग:=1 + (न्यूनतम मैट्रिक्स [पंक्ति -1, कर्नल], मैट्रिक्स [पंक्ति, कॉलम -1] और मैट्रिक्स [पंक्ति -1, कॉलम -1])

          • मैट्रिक्स [पंक्ति, col] :=वर्ग

          • परिणाम:=परिणाम + वर्ग

  • वापसी परिणाम

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

उदाहरण

def solve(matrix):
   if matrix == [[1]]:
      return 1
   rows = len(matrix)
   cols = len(matrix[0])
   result = 0
   for row in range(rows):
      for col in range(cols):
         if (row == 0 or col == 0):
            if matrix[row][col] == 1:
               result += 1
         elif matrix[row][col] == 1:
            square = min(matrix[row-1][col], min(matrix[row][col-1], matrix[row-1][col-1])) + 1
            matrix[row][col] = square
            result += square
   return result
matrix = [[0,1,1,1],[1,1,1,1],[0,1,1,1]]
print(solve(matrix))

इनपुट

{{0,1,1,1},{1,1,1,1},{0,1,1,1}}

आउटपुट

15

  1. पायथन में n नोड्स के साथ BST की संख्या गिनने का कार्यक्रम

    मान लीजिए कि हमारे पास अलग-अलग नोड हैं। सभी अलग हैं। हमें यह पता लगाना है कि हम उन्हें कितने तरीकों से व्यवस्थित कर सकते हैं ताकि हम बाइनरी सर्च ट्री बना सकें। जैसा कि हम बाइनरी सर्च ट्री के बारे में जानते हैं, लेफ्ट सबट्री में हमेशा छोटे मान होते हैं और राइट सबट्री में बड़े मान होते हैं। इसे हल कर

  1. पायथन में समरूप सबस्ट्रिंग की संख्या गिनने का कार्यक्रम

    मान लीजिए कि हमारे पास एक स्ट्रिंग s है, हमें s के समरूप सबस्ट्रिंग की संख्या ज्ञात करनी है। उत्तर बहुत बड़ा हो सकता है, इसलिए उत्तर मॉड्यूल 10^9+7 लौटाएं। एक स्ट्रिंग को समरूप कहा जाता है जब स्ट्रिंग के सभी वर्ण समान होते हैं। इसलिए, यदि इनपुट s =xyyzzxx जैसा है, तो आउटपुट 13 होगा क्योंकि समरूप सब

  1. पायथन का उपयोग करके सभी नोड्स तक पहुंचने के लिए न्यूनतम संख्या में कोने खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक निर्देशित चक्रीय ग्राफ है, जिसमें n कोने हैं और नोड्स 0 से n-1 तक गिने जाते हैं, ग्राफ को किनारे की सूची द्वारा दर्शाया जाता है, जहां किनारों [i] =(यू, वी) नोड यू से एक निर्देशित किनारे का प्रतिनिधित्व करता है। नोड वी। हमें शिखर का सबसे छोटा सेट ढूंढना है जिससे ग्राफ में सभ