मान लीजिए हमारे पास एक बाइनरी मैट्रिक्स है जहां 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 होगा।
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
d := 0,perimeter := 0।height := len(matrix),length := len(matrix[0])।मैट्रिक्स की प्रत्येक पंक्ति
lineके लिए:c := 0।पंक्ति में प्रत्येक
valके लिए:यदि
val == 1:surround := 4।यदि
c != length-1औरmatrix[d][c+1] == 1, तोsurround -= 1।यदि
c != 0औरmatrix[d][c-1] == 1, तोsurround -= 1।यदि
d != height-1औरmatrix[d+1][c] == 1, तोsurround -= 1।यदि
d != 0औरmatrix[d-1][c] == 1, तोsurround -= 1।perimeter += surround।c += 1।
d += 1।
perimeterलौटाएं।
उदाहरण
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