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

Python से स्ट्रिंग को गुड तरीके से स्प्लिट करने के तरीकों की संख्या कैसे ढूंढें?

स्ट्रिंग को दो नॉन-एम्प्टी पार्ट्स p, q में स्प्लिट करें जहां डिस्टिंक्ट कैरेक्टर्स की संख्या बराबर हो। ऐसे स्प्लिट्स काउंट करें।

एल्गोरिदम

  • left और right काउंटर्स (Counter) मेंटेन करें।
  • प्रत्येक कैरेक्टर c के लिए: left[c]++, right[c]--।
  • अगर right[c] == 0 तो डिलीट करें।
  • अगर len(left) == len(right) तो result++।

उदाहरण कोड


from collections import Counter

def solve(s):
    result = 0
    left, right = Counter(), Counter(s)
    for c in s:
        left[c] += 1
        right[c] -= 1
        if not right[c]:
            del right[c]
        if len(left) == len(right):
            result += 1
    return result

# टेस्ट: s="xxzxyx" -> गुड स्प्लिट्स: ("xxz","xyx"), ("xxzx","yx") -> आउटपुट: 2

इनपुट/आउटपुट

इनपुट: "xxzxyx"
आउटपुट: 2

  1. Python से बाइनरी ट्री में गुड लीफ नोड पेयर्स की संख्या कैसे ढूंढें? Python से बाइनरी ट्री में गुड लीफ नोड पेयर्स की संख्या कैसे ढूंढें?

    दो लीफ नोड्स का पेयर गुड है अगर उनके बीच का सबसे छोटा पथ ≤ d है। पोस्ट-ऑर्डर DFS से सभी गुड पेयर्स काउंट करें। एल्गोरिदम रिकर्सिव util(root) रिटर्न करता है: प्रत्येक लीफ के लिए [depth_from_root, 0] (दूसरा मान अपडेट होता है)। लेफ्ट और राइट सबट्री के लीफ्स के लिए: डेप्थ्स इन्क्रीमेंट करें। सभी लेफ्ट-

  1. - पैलिंड्रॉम को विभाजित करने के तरीकों की संख्या ज्ञात करने का पायथन प्रोग्राम

    मान लीजिए हमारे पास एक स्ट्रिंग s है, हमें उन तरीकों की संख्या ढूंढनी है जिनसे हम स्ट्रिंग को विभाजित कर सकते हैं जैसे कि प्रत्येक भाग एक पैलिंड्रॉम हो। उदाहरण के लिए, यदि इनपुट s = xyyx है, तो आउटपुट 3 होगा, क्योंकि हमारे पास विभाजन हैं: [x, yy, x], [x, y, y, x], [xyyx]। इसे हल करने के लिए, हम निम

  1. - पायथन में संदेश को डिकोड करने के तरीकों की संख्या खोजने का प्रोग्राम

    मान लीजिए हमारे पास a = 1, b = 2, ... z = 26 जैसा मैपिंग है, और हमारे पास एक एन्कोडेड संदेश message स्ट्रिंग है, हमें उन तरीकों की संख्या गिननी है जिनसे इसे डिकोड किया जा सकता है। उदाहरण के लिए, यदि इनपुट message = 222 है, तो आउटपुट 3 होगा, क्योंकि इसे 3 तरीकों से डिकोड किया जा सकता है: bbb, bv, और