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

पायथन में उपस्ट्रिंग हटाकर अधिकतम स्कोर गिनने का प्रोग्राम


मान लीजिए हमारे पास एक स्ट्रिंग s और दो मान x और y हैं। हम दी गई दो प्रकार के संचालन किसी भी संख्या में कर सकते हैं।

  • उपस्ट्रिंग "ab" खोजें, यदि मौजूद है, तो इसे हटाकर x अंक प्राप्त करें।

  • उपस्ट्रिंग "ba" खोजें, यदि मौजूद है, तो इसे हटाकर y अंक प्राप्त करें।

हमें s पर उपरोक्त संचालन लागू करने के बाद प्राप्त होने वाले अधिकतम अंक ज्ञात करने हैं।

इसलिए, यदि इनपुट है s = "cbbaacdeabb" x = 4 y = 5, तो आउटपुट 14 होगा क्योंकि प्रारंभिक स्ट्रिंग "cbbaacdeabb" है, फिर "cbbaacde(ab)b" हटाकर 4 प्राप्त करें, अब स्ट्रिंग "cbbaacdeb" है, फिर "cb(ba)acdeb" हटाकर 5 और प्राप्त करें, वर्तमान स्कोर 4+5 = 9, अब स्ट्रिंग "cbacdeb" है, फिर फिर से "c(ba)cdeb" हटाकर 5 अतिरिक्त प्राप्त करें, वर्तमान स्कोर 9+5=14, और स्ट्रिंग "ccdeb" है, अब हटाने के लिए कुछ नहीं है।

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

  • a := 'a', b := 'b'
  • ans := 0, a_st := 0, b_st := 0
  • यदि y > x, तो
    • a और b को स्वैप करें
    • x और y को स्वैप करें
  • s में प्रत्येक c के लिए, करें
    • यदि c a के समान है, तो
      • a_st := a_st + 1
    • अन्यथा जब c b के समान है, तो
      • यदि a_st शून्येतर है, तो
        • ans := ans + x
        • a_st := a_st - 1
      • अन्यथा,
        • b_st += 1
    • अन्यथा,
      • ans := ans + y * a_st और b_st का न्यूनतम
      • a_st := 0
      • b_st := 0
  • ans + y * a_st और b_st का न्यूनतम वापस करें

उदाहरण

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

def solve(s, x, y):
    a = 'a'
    b = 'b'
    ans = 0
    a_st = 0
    b_st = 0
    if y > x:
        a, b = b, a
        x, y = y, x
    for c in s:
        if c == a:
            a_st += 1
        elif c == b:
            if a_st:
                ans += x
                a_st -= 1
            else:
                b_st += 1
        else:
            ans += y * min(a_st, b_st)
            a_st = 0
            b_st = 0
    return ans + y * min(a_st, b_st)

s = "cbbaacdeabb"
x = 4
y = 5
print(solve(s, x, y))

इनपुट

"cbbaacdeabb", 4, 5

आउटपुट

14
  1. पायथन प्रोग्राम: स्ट्रिंग से nth कैरेक्टर हटाएं पायथन प्रोग्राम: स्ट्रिंग से nth कैरेक्टर हटाएं

    इस लेख में, हम नीचे दिए गए प्रॉब्लम स्टेटमेंट के समाधान के बारे में सीखेंगे: प्रॉब्लम स्टेटमेंट हमें एक स्ट्रिंग दी गई है, हमें दी गई स्ट्रिंग से i-वें इंडेक्स वाले कैरेक्टर को हटाना है और इसे प्रदर्शित करना है। पायथन में किसी भी स्ट्रिंग में, इंडेक्सिंग हमेशा 0 से शुरू होती है। मान लीजिए हमारे पा

  1. पायथन प्रोग्राम: स्ट्रिंग से nth कैरेक्टर हटाना पायथन प्रोग्राम: स्ट्रिंग से nth कैरेक्टर हटाना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे -समस्या कथन - हमें एक स्ट्रिंग दी गई है, हमें दी गई स्ट्रिंग से ith इंडेक्स वाले कैरेक्टर को हटाना है और इसे प्रदर्शित करना है।पायथन में किसी भी स्ट्रिंग में, इंडेक्सिंग हमेशा 0 से शुरू होती है। मान लीजिए हमारे पास एक स्ट्रिंग tutor

  1. पायथन प्रोग्राम: स्ट्रिंग से n-वां कैरेक्टर हटाना पायथन प्रोग्राम: स्ट्रिंग से n-वां कैरेक्टर हटाना

    स्ट्रिंग का अर्थ है कैरेक्टर्स का ऐरे, इसलिए शुरुआती एड्रेस 0 होता है। फिर हम आसानी से हर कैरेक्टर का इंडेक्स प्राप्त कर सकते हैं। हमें वह इंडेक्स नंबर इनपुट करना होता है फिर उस एलिमेंट को हटाना होता है। इसलिए स्ट्रिंग को दो सबस्ट्रिंग्स में स्प्लिट करें। दो भाग होने चाहिए: एक n-वें इंडेक्स्ड कैरेक्