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

Pythonで指定された3つの頂点を持つ長方形の4番目の頂点の座標を検索します


サイズがQ*Pのグリッドがあるとします。このグリッドには、正確に3つのアスタリスク「*」が含まれ、他のすべてのセルにはドット「。」があります。ここで、「*」は長方形の頂点を表します。欠落している頂点の座標を見つける必要があります。ここでは、1ベースのインデックス作成について検討します。

したがって、入力がgrid =["。*。"、 "..."、 "*。*"]の場合、出力は[1、3]になり、これは欠落している座標です。

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

  • p:=行数

  • q:=列数

  • row:=すべての行番号のマップを作成し、関連する値は0

  • col:=すべての列番号のマップを作成し、関連する値は0

  • 0からpの範囲のiの場合、実行

    • 0からqの範囲のjについては、次のようにします

      • grid [i、j]が'*'と同じ場合、

        • row [i]:=row [i] + 1

        • col [j]:=col [j] + 1

    • 行のk、vごとに、実行します

      • vが1と同じ場合、

        • x_coord:=k;

    • colのk、vごとに、実行します

      • vが1と同じ場合、

        • y_coord:=k;

  • return(x_coord + 1、y_coord + 1)

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

def get_missing_vertex(grid) :
   p = len(grid)
   q = len(grid[0])
   row = dict.fromkeys(range(p), 0)
   col = dict.fromkeys(range(q), 0)
   for i in range(p) :
      for j in range(q) :
         if (grid[i][j] == '*') :
            row[i] += 1
            col[j] += 1
   for k,v in row.items() :
      if (v == 1) :
         x_coord = k;
   for k,v in col.items() :
      if (v == 1) :
         y_coord = k;
   return (x_coord + 1, y_coord + 1)
grid = [".*.", "...", "*.*"]
print(get_missing_vertex(grid))

入力

[".*.", "...", "*.*"]

出力

(1, 3)

  1. Pythonで指定された配列内のすべての適切なインデックスを検索します

    数値の配列Aがあるとすると、この配列のすべてのインデックスを見つけて、配列からi番目の要素を削除した後、その配列が適切な配列になるようにする必要があります。そのことを覚えておく必要があります- 適切な配列とは、他のすべての要素の合計に等しい要素を持つ配列です。 1ベースのインデックスがここで使用されます。 したがって、入力が[10、4、6、2]の場合、出力は[1,4]になり、A [1]を削除すると、配列は[4、6、2]のようになります。 6 =4 + 2なので、良いです。 A [4]を削除すると、配列は[10、4、6]のようになり、10 =4+6のようになります。 これを解決するには、

  2. Pythonで指定されたネストされたリストで最大値のサブリストを検索します

    リストには、その要素として他のリストを含めることができます。この記事では、特定のリストに存在する最大値のサブリストを見つけることに等しいです。 maxとlambdaを使用 max関数とLambda関数を一緒に使用して、最大値を持つサブリストを指定できます。 例 listA = [['Mon', 90], ['Tue', 32], ['Wed', 120]] # Using lambda res = max(listA, key=lambda x: x[1]) # printing output print("Given List:\n