Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのマトリックスに配置された爆弾ですべての敵が殺されたかどうかを確認します


マトリックスマットがあるとします。次のようないくつかの異なる値があります。マトリックスのセルは、これら3つの文字のいずれかを保持できます

  • 空の領域の場合は0。
  • 爆弾の場合は1。
  • 敵の場合は2。

これで、爆弾は一方の端からもう一方の端まで水平方向と垂直方向にのみ爆発できます。爆弾が爆発したときにすべての敵が死ぬかどうかを確認する必要があります。

したがって、入力が次のような場合

0 0 2 0
0 1 0 0
0 2 0 0
0 0 1 0

その場合、出力はTrueになります。これは、場所[1、1]の爆弾が場所[2、1]の敵を埋めることができ、[0、2]の敵が[3、2]に配置された爆弾によって殺されるためです。

>

これを解決するには、次の手順に従います-

  • r:=マットの行数
  • c:=マットの列数
  • i:=0、j:=0、x:=0、y:=0
  • 0からr-1の範囲のiの場合、do
    • 0からc-1の範囲のjの場合、do
      • mat [i、j]が1の場合、
        • 0からr-1の範囲のxの場合、do
          • mat [x、j]が1でない場合、
            • mat [x、j]:=0
        • 0〜c -1の範囲のyについては、
          • mat [i、y]が1でない場合、
            • mat [i、y]:=0
  • 0からr-1の範囲のiの場合、do
    • 0からc-1の範囲のjの場合、do
      • mat [i、j]が2の場合、
        • Falseを返す
  • Trueを返す

理解を深めるために、次の実装を見てみましょう-

def solve(mat):
   r = len(mat)
   c = len(mat[0])
   i, j, x, y = 0, 0, 0, 0
   for i in range(r):
      for j in range(c):
         if mat[i][j] == 1:
            for x in range(r):
               if mat[x][j] != 1:
                  mat[x][j] = 0
            for y in range(c):
               if mat[i][y] != 1:
                  mat[i][y] = 0
   for i in range(r):
      for j in range(c):
         if mat[i][j] == 2:
            return False
   return True
matrix = [ [0,0,2,0], [0,1,0,0], [0,2,0,0], [0,0,1,0] ]
print(solve(matrix))

入力

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

出力

True

  1. 2つのツリーのすべてのレベルがアナグラムであるかどうかをPythonで確認します

    2つの二分木が提供されているとします。二分木の各レベルが他の二分木の同じレベルのアナグラムであるかどうかを確認する必要があります。アナグラムの場合はTrueを返し、そうでない場合はFalseを返します。 したがって、入力が次のような場合 、出力はTrueになります。 これを解決するには、次の手順に従います- tree_1は最初のツリーのルートノードであり、tree_2は2番目のツリーのルートノードです。 tree_1がnullと同じで、tree_2がnullと同じ場合、 Trueを返す tree_1がnullと同じであるか、tree_2がnullと同じである場合、 Fa

  2. 与えられた2つの行列が同一であるかどうかをチェックするPythonプログラム

    ここでは2つの行列が与えられています。両方の行列の順序は同じです。同じように2つの行列が等しくなければならず、両方の行列の行と列の数が等しく、対応する要素も等しくなければなりません。 アルゴリズム Step 1: Create two matrix. Step 2: Then traverse every element of the first matrix and second matrix and compare every element of the first matrix with the second matrix. Step 3: If the both are same