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