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

पायथन में एक द्वीप के आकार की परिधि को खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एक बाइनरी मैट्रिक्स है जहां 0 खाली सेल दिखाता है और 1 एक ब्लॉक दिखाता है जो एक आकृति बनाता है, अब हमें आकृति की परिधि का पता लगाना है। आकृति अपने अंदर कोई छेद नहीं रखेगी।

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

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

तो आउटपुट 14 होगा।

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

  • घ :=0

  • परिधि :=0

  • ऊंचाई :=मैट्रिक्स की पंक्ति गणना

  • लंबाई :=मैट्रिक्स की स्तंभ संख्या

  • मैट्रिक्स में प्रत्येक पंक्ति के लिए, करें

    • सी:=0

    • पंक्ति में प्रत्येक वैल के लिए, करें

      • अगर वैल 1 के समान है, तो

        • घेरा :=4

        • यदि c लंबाई -1 के समान नहीं है, तो

          • अगर मैट्रिक्स [डी, सी + 1] 1 के समान है, तो

            • घेरा :=घेरा - 1

        • यदि c, 0 के समान नहीं है, तो

          • अगर मैट्रिक्स [डी, सी -1] 1 के समान है, तो

            • घेरा :=घेरा - 1

        • यदि d ऊंचाई -1 के समान नहीं है, तो

          • यदि मैट्रिक्स [d + 1, c] 1 के समान है, तो

            • घेरा :=घेरा - 1

        • यदि d, 0 के समान नहीं है, तो

          • अगर मैट्रिक्स [डी -1, सी] 1 के समान है, तो

            • घेरा :=घेरा - 1

        • परिधि :=परिधि + घेरा

        • सी:=सी + 1

    • डी:=डी + 1

  • वापसी परिधि

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

उदाहरण

class Solution:
   def solve(self, matrix):
      d = 0
      perimeter = 0
      height = len(matrix)
      length = len(matrix[0])
      for line in matrix:
         c = 0

         for val in line:
            if val == 1:
               surround = 4
               if c != length - 1:
                  if matrix[d][c + 1] == 1:
                     surround -= 1
               if c != 0:
                  if matrix[d][c - 1] == 1:
                     surround -= 1
               if d != height - 1:
                  if matrix[d + 1][c] == 1:
                     surround -= 1
               if d != 0:
                  if matrix[d - 1][c] == 1:
                     surround -= 1
               perimeter += surround
            c += 1
         d += 1
      return perimeter

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

इनपुट

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

आउटपुट

14

  1. सरणी का योग खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक इनपुट के रूप में एक सरणी को देखते हुए, हमें दिए गए सरणी के योग की गणना करने की आवश्यकता है। यहां हम ब्रूट-फोर्स अप्रोच का अनुसरण कर सकते हैं, यानी एक सूची को पार करना और प्रत्येक तत्व को एक खा

  1. पायथन प्रोग्राम में एक सिलेंडर की परिधि का पता लगाएं

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन इनपुट व्यास और ऊंचाई, सिलेंडर की परिधि पाएं। परिमाप और कुछ नहीं बल्कि एक बेलन का पार्श्व दृश्य है अर्थात एक आयत। इसलिए परिधि=2 * (h + d) यहाँ d बेलन का व्यास है h सिलेंडर की ऊंचाई है आइए अब कार्यान्वयन देखें उद

  1. एक सिलेंडर की परिधि का पता लगाने के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन - इनपुट व्यास और ऊंचाई, सिलेंडर की परिधि ज्ञात करें परिमाप और कुछ नहीं बल्कि एक बेलन का पार्श्व दृश्य है अर्थात एक आयत इसलिए परिधि=2 * (h + d) यहाँ d बेलन का व्यास है h सिलेंडर की ऊंचाई है आइए अब कार्यान्वयन दे