Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

หาพิกัดมุมที่สี่ของสี่เหลี่ยมผืนผ้าจาก 3 มุมที่กำหนดใน Python

สมมติว่าเรามีกริด Q x P มีดอกโชค (*) อยู่ 3 จุด แทนมุมของสี่เหลี่ยมผืนผ้า หาพิกัดมุมที่หายไป (1-based indexing)

เช่น grid = [".*.", "...", "*.*"] ผลลัพธ์คือ (1, 3)

ขั้นตอนการแก้ปัญหา

  1. นับจำนวน * ในแต่ละแถวและแต่ละคอลัมน์
  2. แถวที่มี * 1 จุดคือแถวของมุมที่หายไป
  3. คอลัมน์ที่มี * 1 จุดคือคอลัมน์ของมุมที่หายไป

ตัวอย่างโค้ด Python

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

อินพุต

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

เอาต์พุต

(1, 3)