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

Python में संबंधित मानों की स्वैपिंग से दो मैट्रिक्स को सख्ती से बढ़ते क्रम में बनाने की जांच कैसे करें?

मान लीजिए हमारे पास n x m आकार के दो मैट्रिक्स mat1 और mat2 हैं। हमें यह जांचना है कि क्या ये दो मैट्रिक्स सख्ती से बढ़ते क्रम में हैं या नहीं, केवल दो तत्वों को अलग-अलग मैट्रिक्स में तभी स्वैप करके जब वे दोनों मैट्रिक्स में स्थिति (i, j) पर हों।

तो, यदि इनपुट है

715
1610


149
817

तो आउटपुट True होगा क्योंकि हम (7, 14) और (10, 17) जोड़ियों को स्वैप करके उन्हें सख्ती से बढ़ता हुआ बना सकते हैं।

1415
1617


79
810

हल करने के चरण

  • row := mat1 की पंक्ति संख्या
  • col := mat1 की स्तंभ संख्या
  • रेंज 0 से row - 1 तक के लिए i, करें:
    • रेंज 0 से col - 1 तक के लिए j, करें:
      • यदि mat1[i,j] > mat2[i,j], तो:
        • mat1[i, j] और mat2[i, j] को स्वैप करें
    • रेंज 0 से row - 1 तक के लिए i, करें:
      • रेंज 0 से col-2 तक के लिए j, करें:
        • यदि mat1[i, j] >= mat1[i, j + 1] या mat2[i, j] >= mat2[i, j + 1], तो:
          • False लौटाएं
    • रेंज 0 से row-2 तक के लिए i, करें:
      • रेंज 0 से col - 1 तक के लिए j, करें:
        • यदि mat1[i, j] >= mat1[i + 1, j] या mat2[i, j] >= mat2[i + 1, j], तो:
          • False लौटाएं
    • True लौटाएं

    उदाहरण

    def solve(mat1, mat2):
        row = len(mat1)
        col = len(mat1[0])
        for i in range(row):
            for j in range(col):
                if mat1[i][j] > mat2[i][j]:
                    mat1[i][j], mat2[i][j] = mat2[i][j], mat1[i][j]
        for i in range(row):
            for j in range(col-1):
                if mat1[i][j] >= mat1[i][j + 1] or mat2[i][j] >= mat2[i][j + 1]:
                    return False
        for i in range(row-1):
            for j in range(col):
                if mat1[i][j] >= mat1[i + 1][j] or mat2[i][j] >= mat2[i + 1][j]:
                    return False
        return True
    
    mat1 = [[7, 15],
            [16, 10]]
    mat2 = [[14, 9],
            [8, 17]]
    print(solve(mat1, mat2))

    इनपुट

    [[7, 15], [16, 10]], [[14, 9], [8, 17]]

    आउटपुट

    True
  1. Python में दो ट्री नोड्स को स्वैप करके बनाए जा सकते हैं या नहीं, इसकी जांच करने का प्रोग्राम Python में दो ट्री नोड्स को स्वैप करके बनाए जा सकते हैं या नहीं, इसकी जांच करने का प्रोग्राम

    मान लीजिए हमारे पास दो ट्री हैं, हमें यह जांचना है कि क्या हम पहले ट्री को दूसरे में किसी भी नोड के बाएं और दाएं सबट्री को कितनी भी बार स्वैप करके बदल सकते हैं। तो, यदि इनपुट इस तरह है तो आउटपुट True होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: que1 := root0 के साथ प्रारंभ एक कतार que2

  1. पायथन प्रोग्राम: जांचें कि क्या ऐरे में सभी डिजिट्स का उपयोग करके 3 से विभाज्य संख्या बनाना संभव है पायथन प्रोग्राम: जांचें कि क्या ऐरे में सभी डिजिट्स का उपयोग करके 3 से विभाज्य संख्या बनाना संभव है

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इंटीजर्स के ऐरे इनपुट दिए जाने पर, हमें यह ढूंढना होगा कि क्या इन नंबर्स में उपलब्ध सभी डिजिट्स का उपयोग करके एक इंटीजर बनाना संभव है जो 3 से विभाज्य हो। यहां हम एक फंक्शन जनरेट करेंग

  1. - पायथन का उपयोग करके दो मैट्रिक्स कैसे जोड़ें

    समस्या विवरण पायथन में 2 मैट्रिक्स को जोड़ने का सबसे आसान तरीका है उन पर लूप चलाना और तत्वों को एक-एक करके जोड़ना। उदाहरण X = [[1,2,3], [4,5,6], [7,8,9]] Y = [[9,8,7], [6,5,4], [3,2,1]] result = [[0,0,0], [0,0,0], [0,0,0]] for i in range(len(X)): for j in range(len(X[0])): result[i][j]