ধরুন আমাদের কাছে Q *P আকারের একটি গ্রিড আছে, এই গ্রিডে ঠিক তিনটি তারকাচিহ্ন রয়েছে '*' এবং অন্য প্রতিটি ঘরে ডট '.' রয়েছে, যেখানে '*' একটি আয়তক্ষেত্রের শীর্ষবিন্দুর জন্য। আমাদের অনুপস্থিত শীর্ষবিন্দুর স্থানাঙ্কগুলি খুঁজে বের করতে হবে। এখানে আমরা 1-ভিত্তিক ইন্ডেক্সিং বিবেচনা করব।
সুতরাং, যদি ইনপুট হয় গ্রিড =[ ".*.", "...", "*.*" ], তাহলে আউটপুট হবে [1, 3], এটি অনুপস্থিত স্থানাঙ্ক।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
p :=সারির সংখ্যা
-
q :=কলামের সংখ্যা
-
সারি :=সমস্ত সারি নম্বরের জন্য একটি মানচিত্র তৈরি করুন এবং সংশ্লিষ্ট মান হল 0
-
col :=সমস্ত কলাম নম্বরের জন্য একটি মানচিত্র তৈরি করুন এবং সংশ্লিষ্ট মান হল 0
-
0 থেকে p রেঞ্জের জন্য, করুন
-
0 থেকে q রেঞ্জে j এর জন্য, করুন
-
যদি গ্রিড[i, j] '*' এর মত হয়, তাহলে
-
সারি[i] :=সারি[i] + 1
-
col[j] :=col[j] + 1
-
-
-
সারিতে প্রতিটি k,v এর জন্য করুন
-
যদি v 1 এর মত হয়, তাহলে
-
x_coord :=k;
-
-
-
প্রতিটি k,v col, do
এর জন্য-
যদি v 1 এর মত হয়, তাহলে
-
y_coord :=k;
-
-
-
-
ফেরত (x_coord + 1, y_coord + 1)
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
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))
ইনপুট
[".*.", "...", "*.*"]
আউটপুট
(1, 3)