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

Python में ग्रिड बॉक्स में गेंद कहां गिरेगी यह खोजने का प्रोग्राम


मान लीजिए, हमें एक m x n ग्रिड बॉक्स दिया गया है, जहां प्रत्येक सेल में एक बोर्ड होता है जो या तो टॉप-राइट से बॉटम-लेफ्ट की ओर होता है, या टॉप-लेफ्ट से बॉटम-राइट की ओर। अब टॉप सेल्स से, एक गेंद को बॉक्स में डाला जाता है और हमें जांचना है कि क्या वह गेंद बॉक्स के नीचे पहुंचती है। ग्रिड को मैट्रिक्स के रूप में दिया जाता है। यदि एक सेल 1 से चिह्नित है तो विकर्ण बोर्ड टॉप-लेफ्ट से बॉटम-राइट तक फैला होता है; यदि यह -1 से चिह्नित है तो यह टॉप-राइट से बॉटम-लेफ्ट कोने तक फैला होता है। यदि n गेंदों को बॉक्स में डाला जाता है, तो हमें पता लगाना है कि कितनी गेंदें नीचे पहुंचती हैं।

Python में ग्रिड बॉक्स में गेंद कहां गिरेगी यह खोजने का प्रोग्राम

3x3 ग्रिड बॉक्स का उदाहरण।

उदाहरण के लिए, यदि इनपुट है mat =

111-1
-111-1
1-1-11
1-11-1
तो आउटपुट [-1, -1, -1, -1] होगा।

समाधान के चरण

  1. i := mat में पंक्तियों की संख्या
  2. j := mat में कॉलम की संख्या
  3. res := [] (नई सूची)
  4. val को 0 से j-1 तक:
    • x := val
    • r को 0 से i-1 तक:
      • s := mat[r][x]
      • x := x + mat[r][x]
      • यदि x < 0 or x >= j or mat[r][x] != s:
        • res.append(-1)
        • लूप से बाहर निकलें
    • अन्यथा:
      • res.append(x)
  5. res वापस करें

उदाहरण

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

def solve(mat):
    i, j = len(mat), len(mat[0])
    res = []
    for val in range(j):
        x = val
        for r in range(i):
            s = mat[r][x]
            x += mat[r][x]
            if x < 0 or x >= j or mat[r][x] != s:
                res.append(-1)
                break
        else:
            res.append(x)
    return res

print(solve([[1, 1, 1, -1], [-1, 1, 1, -1], [1, -1, -1, 1], [1, -1, 1, -1]]))

इनपुट

[[1, 1, 1, -1], [-1, 1, 1, -1], [1, -1, -1, 1], [1, -1, 1, -1]]

आउटपुट

[-1, -1, -1, -1]
  1. Python प्रोग्राम से ऐरे में सबसे बड़ा तत्व खोजना Python प्रोग्राम से ऐरे में सबसे बड़ा तत्व खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक ऐरे दिया गया है, हमें ऐरे के सबसे बड़े तत्व की गणना करने की आवश्यकता है। यहां हम ब्रूट-फोर्स दृष्टिकोण का उपयोग करते हैं जिसमें हम पूरे लूप को पार करके और तत्व प्राप्त करके सबसे बड़ा तत्व निकालते हैं। हम नीच

  1. पायथन प्रोग्राम: मैट्रिक्स का ट्रांसपोज़ ढूंढें पायथन प्रोग्राम: मैट्रिक्स का ट्रांसपोज़ ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक मैट्रिक्स दिए जाने पर, हमें ट्रांसपोज़ को उसी मैट्रिक्स में स्टोर करना होगा और इसे प्रदर्शित करना होगा। मैट्रिक्स का ट्रांसपोज़ पंक्तियों को कॉलम में और कॉलम को पंक्तियों में बदलकर

  1. पायथन प्रोग्राम: ऐरे का योग ढूंढें पायथन प्रोग्राम: ऐरे का योग ढूंढें

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