在 Python 中查詢給定 3 個頂點的矩形的第四個頂點的座標


假設我們有一個大小為 Q * P 的網格,該網格正好包含三個星號 '*',其他每個單元格都包含點 '.',其中 '*' 代表矩形的頂點。我們必須找到缺失頂點的座標。這裡我們將考慮基於 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

    • 對於 row 中的每個 k,v,執行以下操作

      • 如果 v 與 1 相同,則

        • x_coord := k;

    • 對於 col 中的每個 k,v,執行以下操作

      • 如果 v 與 1 相同,則

        • y_coord := k;

  • 返回(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)

更新於: 2020-08-19

647 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.