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になります。
これを解決するには、次の手順に従います-
-
d:=0
-
周囲長:=0
-
高さ:=行列の行数
-
長さ:=行列の列数
-
行列の各行について、次のようにします
-
c:=0
-
行の各valについて、実行します
-
valが1と同じ場合、
-
サラウンド:=4
-
cが長さ-1と同じでない場合、
-
matrix [d、c + 1]が1と同じ場合、
-
サラウンド:=サラウンド-1
-
-
-
cが0と同じでない場合、
-
matrix [d、c --1]が1と同じ場合、
-
サラウンド:=サラウンド-1
-
-
-
dが高さ-1と同じでない場合、
-
matrix [d + 1、c]が1と同じ場合、
-
サラウンド:=サラウンド-1
-
-
-
dが0と同じでない場合、
-
matrix [d-1、c]が1と同じ場合、
-
サラウンド:=サラウンド-1
-
-
-
周囲長:=周囲長+周囲長
-
c:=c + 1
-
-
-
d:=d + 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
-
Pythonプログラムで円柱の周囲を見つける
この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 直径と高さを入力し、円柱の周囲長を見つけます。 周囲長は、円柱、つまり長方形の側面図に他なりません。 したがって、周囲長=2 *(h + d) ここで、dは円柱の直径です hは円柱の高さです それでは、実装を見てみましょう 例 # Function to calculate the perimeter of a cylinder def perimeter( diameter, height ) : return 2 * ( diameter + height )
-
円柱の周囲を見つけるためのPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 −直径と高さを入力し、円柱の周囲長を求めます 周囲は円柱の側面図、つまり長方形に他なりません したがって、周囲長=2 *(h + d) ここで、dは円柱の直径です hは円柱の高さです それでは、実装を見てみましょう 例 # Function to calculate the perimeter of a cylinder def perimeter( diameter, height ) : return 2 * ( diameter + height ) # ma