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

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

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

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

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

हमें ऊपर दिए गए ऑपरेशनों को s पर लागू करने के बाद अधिकतम अंक प्राप्त करने होंगे।

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

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

  • a :='a', b :='b'
  • उत्तर:=0, a_st:=0, b_st:=0
  • यदि y> x, तो
    • ए और बी स्वैप करें
    • एक्स और वाई स्वैप करें
  • प्रत्येक c in s के लिए, करें
    • यदि c, a के समान है, तो
      • a_st :=a_st + 1
    • अन्यथा जब c, b के समान हो, तो
      • अगर a_st गैर-शून्य है, तो
        • उत्तर:=उत्तर + x
        • a_st :=a_st - 1
      • अन्यथा,
        • b_st +=1
    • अन्यथा,
      • उत्तर:=उत्तर + y * न्यूनतम a_st और b_st
      • a_st :=0
      • b_st :=0
  • वापसी उत्तर + 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 कैरेक्टर को हटाना

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

  1. एक स्ट्रिंग से nवें वर्ण को हटाने के लिए पायथन कार्यक्रम

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

  1. एक स्ट्रिंग से एन-वें चरित्र को हटाने के लिए पायथन कार्यक्रम?

    स्ट्रिंग का अर्थ है वर्ण की सरणी इसलिए प्रारंभिक पता 0. है तो हम आसानी से प्रत्येक वर्ण की अनुक्रमणिका प्राप्त कर सकते हैं। हमें उस इंडेक्स नं को इनपुट करना होगा। फिर उस तत्व को हटा दें। तो स्ट्रिंग को दो उप स्ट्रिंग में विभाजित करें। और दो भाग n वें अनुक्रमित वर्ण से पहले एक होना चाहिए और दूसरा अनु