मान लीजिए हमारे पास Q * P आकार का एक ग्रिड है, इस ग्रिड में ठीक तीन एस्टेरिस्क '*' हैं और हर दूसरे सेल में डॉट '.' है, जहां '*' रेक्टेंगल के एक वर्टेक्स के लिए है। हमें लापता वर्टेक्स के निर्देशांक ढूंढने हैं। यहां हम 1-आधारित इंडेक्सिंग पर विचार करेंगे।
तो, यदि इनपुट grid = [".*.", "...", "*.*"] जैसा है, तो आउटपुट [1, 3] होगा, यह लापता निर्देशांक है।
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
p := पंक्तियों की संख्या
q := कॉलम की संख्या
row := सभी पंक्ति संख्या के लिए एक मैप बनाएं, और संबद्ध मान 0 है
col := सभी कॉलम संख्या के लिए एक मैप बनाएं, और संबद्ध मान 0 है
i को 0 से p तक के लिए, करें:
j को 0 से q तक के लिए, करें:
यदि grid[i, j], '*' के समान है, तो:
row[i] := row[i] + 1
col[j] := col[j] + 1
row में प्रत्येक k,v के लिए, करें:
यदि v, 1 के समान है, तो:
x_coord := k;
col में प्रत्येक k,v के लिए, करें:
यदि 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)