Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में शहर के ब्लॉकों की यात्रा के लिए कुल दूरी

मान लीजिए कि हमारे पास शहर के ब्लॉकों का प्रतिनिधित्व करने वाले अद्वितीय स्ट्रिंग्स का एक मैट्रिक्स है, और स्ट्रिंग्स की एक और सूची है जिसमें देखने के लिए ब्लॉक हैं। यदि हम ब्लॉक मैट्रिक्स [0] [0] पर हैं, तो प्रत्येक ब्लॉक को क्रम से देखने के लिए आवश्यक कुल मैनहट्टन दूरी ज्ञात कीजिए।

तो, अगर इनपुट पसंद है

प्रश्न बी सी
डी Z
जी जी मैं

ब्लॉक =[एच,बी,सी]

फिर आउटपुट 6 होगा क्योंकि "एच" 2 ब्लॉक नीचे (दक्षिण) और 1 ब्लॉक दाएं (पूर्व) है, "बी" 2 ब्लॉकअप (उत्तर) है, "सी" 1 ब्लॉक दाएं (पूर्व) है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • कोर्ड्स:='स्टार्ट' कुंजी और मान (0, 0) वाला नक्शा
  • चटाई में प्रत्येक पंक्ति के लिए, करें
    • चटाई में प्रत्येक कॉलम के लिए, करें
      • कोर्ड्स में (पंक्ति, कॉलम) डालें[mat[row, col]]
  • जिला:=0
  • शुरुआत में 'प्रारंभ' जोड़कर ब्लॉक अपडेट करें
  • i के लिए 0 से लेकर ब्लॉक -1 के आकार तक के लिए, करें
    • c1 :=coords[blocks[i]]
    • c2 :=coords[blocks[i+1]]
    • d :=|c1[0]-c2[0]| + |c1[1]-c2[1]|
    • जिला:=जिला + घ
  • वापसी जिला

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

class Solution:
   def solve(self, mat, blocks):
      coords = {'start': (0,0)}
      for row in range(len(mat)):
         for col in range(len(mat[row])):
            coords[mat[row][col]] = (row,col)
      dist = 0
      blocks = ['start']+blocks
      for i in range(len(blocks)-1):
         c1 = coords[blocks[i]]
         c2 = coords[blocks[i+1]]
         d = abs(c1[0]-c2[0]) + abs(c1[1]-c2[1])
         dist += d
      return dist
ob = Solution()
inp = [["q", "b", "c"],
["d", "e", "z"],
["g", "h", "i"]]
blk = ["h", "b", "c"]
print(ob.solve(inp, blk))

इनपुट

[["q", "b", "c"],["d", "e", "z"],["g", "h", "i"]]

आउटपुट

6

  1. C++ . में कुल हैमिंग दूरी

    मान लीजिए हमारे पास संख्याओं की एक सूची है। हमें दी गई संख्याओं के सभी युग्मों की हैमिंग दूरी ज्ञात करनी है। हम जानते हैं कि दो पूर्णांकों के बीच हैमिंग की दूरी उन स्थितियों की संख्या है, जिन पर संगत बिट भिन्न होते हैं। तो, अगर इनपुट [4,14,17,2] जैसा है, तो आउटपुट 17 होगा। इसे हल करने के लिए, हम इ

  1. पायथन में दो आयतों द्वारा कवर किए गए कुल क्षेत्रफल को खोजने का कार्यक्रम

    मान लीजिए कि हम एक 2D समतल में दो आयताकार आयतों द्वारा कवर किए गए कुल क्षेत्रफल को ज्ञात करना चाहते हैं। यहाँ प्रत्येक आयत को उसके निचले बाएँ कोने और ऊपरी दाएँ कोने से परिभाषित किया गया है जैसा कि चित्र में दिखाया गया है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - चौड़ाई_1 :=|सी-ए|, ऊंचाई_

  1. Python . में Minkowski दूरी

    मिंकोव्स्की दूरी एक मीट्रिक है और एक आदर्श वेक्टर स्थान में, परिणाम मिंकोव्स्की असमानता है। मिंकोव्स्की दूरी का उपयोग वेक्टर की दूरी समानता के लिए किया जाता है। scipy.spatial.distance.minkowski >>> from scipy.spatial import distance >>> distance.minkowski([1, 0, 0], [0, 1, 0], 1