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

पायथन में बाइनरी स्ट्रिंग को दो भागों में विभाजित करके अधिकतम स्कोर ढूंढना


मान लीजिए हमारे पास एक बाइनरी स्ट्रिंग s है। अब एक ऑपरेशन पर विचार करें, जहां हम स्ट्रिंग को दो नॉन-खाली सबस्ट्रिंग s1 और s2 में विभाजित करते हैं। इस विभाजन का स्कोर s1 में "0" की संख्या का योग और s2 में "1" की संख्या का योग है। हमें अधिकतम स्कोर ढूंढना है जो हम प्राप्त कर सकते हैं।

उदाहरण के लिए, यदि इनपुट है s = "011001100111", तो आउटपुट होगा 8, क्योंकि हम स्ट्रिंग को "01100" + "110111" की तरह विभाजित कर सकते हैं। तब, स्कोर 3 + 5 = 8 है।

समाधान दृष्टिकोण

यह एक सरल लीनियर स्कैन समस्या है। हम कुल 1 की संख्या गिनते हैं, फिर बाएं से दाएं स्कैन करते हुए 0 की गिनती बढ़ाते हैं और 1 की गिनती घटाते हैं, प्रत्येक पोजीशन पर अधिकतम स्कोर ट्रैक करते हैं।

  • ones = स्ट्रिंग में कुल 1 की संख्या।
  • zeros = 0 से आरंभ करें।
  • प्रत्येक इंडेक्स i (अंतिम को छोड़कर) के लिए:
    • यदि s[i] == '0', zeros बढ़ाएं।
    • अन्यथा ones घटाएं।
    • ans = max(ans, ones + zeros) अपडेट करें।

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

def solve(s):
    ones = s.count("1")
    zeros = 0
    ans = 0
    for i in range(len(s) - 1):
        if s[i] == "0":
            zeros += 1
        else:
            ones -= 1
        ans = max(ans, ones + zeros)
    return ans

s = "011001100111"
print(solve(s))

इनपुट

"011001100111"

आउटपुट

8

  1. पायथन में सभी संभावित वैध पथों से अधिकतम स्कोर ज्ञात करने का प्रोग्राम पायथन में सभी संभावित वैध पथों से अधिकतम स्कोर ज्ञात करने का प्रोग्राम

    मान लीजिए हमारे पास दो सरणियाँ nums1 और nums2 हैं। एक वैध पथ को इस प्रकार परिभाषित किया गया है: nums1 या nums2 को पार करने के लिए चुनें (सूचकांक-0 से)। सरणी को बाएं से दाएं पार करें। अब, यदि हम किसी ऐसे मान से गुजर रहे हैं जो nums1 और nums2 दोनों में मौजूद है, तो हम दूसरे सरणी पर पथ बदल सकते हैं।

  1. पायथन में बाइनरी ट्री की अधिकतम चौड़ाई खोजने का प्रोग्राम पायथन में बाइनरी ट्री की अधिकतम चौड़ाई खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें ट्री में किसी भी स्तर की अधिकतम चौड़ाई ढूंढनी है। यहां एक स्तर की चौड़ाई उन नोड्स की संख्या है जो बाएं सबसे नोड और दाएं सबसे नोड के बीच रखे जा सकते हैं। उदाहरण के लिए, यदि इनपुट है: तो आउटपुट होगा 2। हल करने के चरण एक मैप d बनाएं, न्यूनतम और अधिकतम मान

  1. पायथन प्रोग्राम: दो स्ट्रिंग्स से असामान्य शब्द खोजें पायथन प्रोग्राम: दो स्ट्रिंग्स से असामान्य शब्द खोजें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें दो स्ट्रिंग्स दी गई हैं, हमें दी गई स्ट्रिंग्स से असामान्य शब्द प्राप्त करने हैं। उदाहरण # असामान्य शब्द def find(A, B): # काउंट count = {} # A में डालें for word in A.split(): count[word] = count.get(w