Computer >> Máy Tính >  >> Lập trình >> Python

Tìm các dây cung của đỉnh thứ tư của một hình chữ nhật có 3 đỉnh đã cho bằng Python

Giả sử chúng ta có một lưới kích thước Q * P, lưới này chứa chính xác ba dấu hoa thị '*' và mọi ô khác đều có dấu chấm '.', Trong đó '*' là đỉnh của hình chữ nhật. Chúng ta phải tìm tọa độ của đỉnh còn thiếu. Ở đây chúng tôi sẽ xem xét lập chỉ mục dựa trên 1.

Vì vậy, nếu đầu vào giống như grid =[". *.", "...", "*. *"], Thì đầu ra sẽ là [1, 3], đây là tọa độ bị thiếu.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • p:=số hàng

  • q:=số cột

  • row:=tạo bản đồ cho tất cả số hàng và giá trị được kết hợp là 0

  • col:=tạo bản đồ cho tất cả số cột và giá trị được kết hợp là 0

  • đối với tôi trong phạm vi từ 0 đến p, thực hiện

    • đối với j trong phạm vi từ 0 đến q, thực hiện

      • nếu lưới [i, j] giống với '*', thì

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

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

    • đối với mỗi k, v trong hàng, thực hiện

      • nếu v giống 1 thì

        • x_coord:=k;

    • cho mỗi k, v trong col, do

      • nếu v giống 1 thì

        • y_coord:=k;

  • return (x_coord + 1, y_coord + 1)

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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))

Đầu vào

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

Đầu ra

(1, 3)