একটি Q x P গ্রিড দেওয়া আছে যেটে ঠিক ৩টি '*' (অ্যাস্ট্রিস্ক) আছে, বাকি সব '.'। '*' গুলো একটি রেক্ট্যাঙ্গেলের ৩টি শীর্ষবিন্দু (vertex)। বাকি ১টি শীর্ষবিন্দুর কোঅর্ডিনেট (1-based indexing) বের করতে হবে।
উদাহরণ
ইনপুট: grid = [".*.", "...", "*.*"]
আউটপুট: (1, 3)
সমাধানের পদ্ধতি
- প্রতিটি সারি (row) ও কলাম (col)-এ কতগুলো '*' আছে তা গুনুন।
- রেক্ট্যাঙ্গেলের দুটি শীর্ষবিন্দু একই সারি/কলামে থাকবে।
- যে সারিতে ১টি '*' আছে, সেটি হলো missing vertex-এর সারি।
- যে কলামে ১টি '*' আছে, সেটি হলো missing vertex-এর কলাম।
- 1-based indexing-এ রিটার্ন করুন।
পাইথন কোড
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
x_coord = y_coord = 0
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)