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

पायथन में सिटी ब्लॉक्स विजिट करने की कुल दूरी

समस्या विवरण

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

उदाहरण

मैट्रिक्स:

qbc
dez
ghi

ब्लॉक्स: ["h", "b", "c"]

आउटपुट: 6

एल्गोरिदम

  1. प्रत्येक ब्लॉक के निर्देशांक coords मैप में स्टोर करें
  2. blocks की शुरुआत में 'start' (0,0) जोड़ें
  3. क्रमागत ब्लॉक्स के बीच मैनहट्टन दूरी जोड़ें: |r1-r2| + |c1-c2|
  4. कुल दूरी वापस करें

पायथन कार्यान्वयन

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"]], ["h", "b", "c"]

आउटपुट

6
  1. - C++ में कुल हैमिंग दूरी (Total Hamming Distance)

    समस्या विवरण संख्याओं की एक सूची दी गई है। हमें सभी जोड़ों (pairs) की हैमिंग दूरी (Hamming distance) का योग ज्ञात करना है। दो पूर्णांकों के बीच हैमिंग दूरी उन बिट स्थितियों की संख्या है जहां संबंधित बिट्स भिन्न होते हैं। उदाहरण इनपुट [4, 14, 17, 2] आउटपुट 17 समाधान दृष्टिकोण (बिट मैनिपुलेशन) प्रत

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

    मान लीजिए हम 2D तल में दो रेक्टिलिनियर आयतों द्वारा कवर किए गए कुल क्षेत्रफल को खोजना चाहते हैं। यहां प्रत्येक आयत को उसके निचले बाएं कोने और ऊपरी दाएं कोने द्वारा परिभाषित किया गया है जैसा कि चित्र में दिखाया गया है।इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:width_1 := |C-A|, height_1 := |D-

  1. - पायथन में मिन्कोव्स्की दूरी

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