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

पायथन में प्रत्येक ब्रैकेट गहराई में वर्णों की संख्या गिनने का प्रोग्राम

मान लीजिए हमारे पास एक स्ट्रिंग s है जिसमें केवल तीन वर्ण "X", "(" , और ")" हैं। स्ट्रिंग में संतुलित ब्रैकेट हैं और बीच में कुछ "X" हैं साथ ही संभवतः नेस्टेड ब्रैकेट भी पुनरावर्ती रूप से हो सकते हैं। हमें s में ब्रैकेट की प्रत्येक गहराई पर "X" की संख्या ढूंढनी है, सबसे उथली गहराई से सबसे गहरी गहराई तक शुरू करके।

इसलिए, यदि इनपुट है s = "(XXX(X(XX))XX)", तो आउटपुट होगा [5, 1, 2]।

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

  • depth := -1
  • out := एक नई सूची
  • s में प्रत्येक c के लिए, करें:
    • यदि c "(" के समान है, तो:
      • depth := depth + 1
    • अन्यथा जब c ")" के समान है, तो:
      • depth := depth - 1
    • यदि depth out के आकार के समान है, तो:
      • 0 को out के अंत में डालें
    • यदि c "X" के समान है, तो:
      • out[depth] := out[depth] + 1
  • out लौटाएं

उदाहरण

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

def solve(s):
    depth = -1
    out = []
    for c in s:
        if c == "(":
            depth += 1
        elif c == ")":
            depth -= 1
        if depth == len(out):
            out.append(0)
        if c == "X":
            out[depth] += 1
    return out
s = "(XXX(X(XX))XX)"
print(solve(s))

इनपुट

"(XXX(X(XX))XX)"

आउटपुट

[5, 1, 2]
  1. - Python में दो मैप्स में ओवरलैपिंग द्वीपों की संख्या गिनने का प्रोग्राम

    मान लीजिए हमारे पास दो बाइनरी मैट्रिक्स mat1 और mat2 हैं। यहां 1 भूमि दर्शाता है और 0 पानी, यदि 1 (भूमि) का एक समूह पानी से घिरा हुआ है तो उसे द्वीप कहा जाता है। हमें उन द्वीपों की संख्या ज्ञात करनी है जो mat1 और mat2 दोनों में ठीक उन्हीं निर्देशांकों पर मौजूद हैं। इसलिए, यदि इनपुट है mat1 = [[1,0,

  1. - Python प्रोग्राम - स्ट्रिंग में विशिष्ट सबस्ट्रिंग की संख्या गिनें

    एक स्ट्रिंग s दी गई है, हमें s के विशिष्ट गैर-खाली सबस्ट्रिंग की संख्या खोजनी है। उदाहरण इनपुट: s = abaa आउटपुट: 8 व्याख्या: सबस्ट्रिंग हैं [a, b, ab, ba, aa, aba, baa, abaa]। एल्गोरिदम (ट्राई/प्रीफिक्स ट्री) trie := {} (खाली डिक्शनरी) n := len(s) i 0 से n-1 तक: curr := trie j i से n-1

  1. पायथन में ऐरे में x से बड़े सभी वैल्यूज को फ़िल्टर करने का प्रोग्राम पायथन में ऐरे में x से बड़े सभी वैल्यूज को फ़िल्टर करने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की सूची है। हमारे पास x नामक एक और संख्या भी है। हमें nums से उन सभी नंबरों को फ़िल्टर करके ढूंढना है जो x से कम हैं। पायथन में filter() मेथड होता है जो फंक्शन को आर्गुमेंट के रूप में लेता है और इस फंक्शन का उपयोग करके फ़िल्टर करता है। तो, यदि इनपुट nums = [1,5