Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tìm tọa độ đỉnh thứ 4 của hình chữ nhật cho 3 đỉnh đã biết trong Python


Cho lưới Q x P chứa đúng 3 dấu '*' (đỉnh hình chữ nhật), các ô khác là '.'. Tìm tọa độ đỉnh còn thiếu (chỉ số 1-based).

Ví dụ: grid = [".*.", "...", "*.*"] → [1, 3].

Giải thuật

  • Đếm số lần xuất hiện '*' trên mỗi hàng và mỗi cột.
  • Hàng xuất hiện 1 lần là hàng của đỉnh thiếu.
  • Cột xuất hiện 1 lần là cột của đỉnh thiếu.
  • Trả về (hàng+1, cột+1).

Ví dụ

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

grid = [".*.", "...", "*.*"]
print(get_missing_vertex(grid))

Đầu vào

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

Đầu ra

(1, 3)