สมมติว่าเรามีกริด Q x P มีดอกโชค (*) อยู่ 3 จุด แทนมุมของสี่เหลี่ยมผืนผ้า หาพิกัดมุมที่หายไป (1-based indexing)
เช่น grid = [".*.", "...", "*.*"] ผลลัพธ์คือ (1, 3)
ขั้นตอนการแก้ปัญหา
- นับจำนวน * ในแต่ละแถวและแต่ละคอลัมน์
- แถวที่มี * 1 จุดคือแถวของมุมที่หายไป
- คอลัมน์ที่มี * 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)