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

Python में स्ट्रिंग को संतुलित बनाने के लिए न्यूनतम डिलीशन गिनने का प्रोग्राम


मान लीजिए हमारे पास एक स्ट्रिंग s है जिसमें केवल दो वर्ण 's' और 't' हैं। हम s के किसी भी संख्या में वर्णों को हटाकर स्ट्रिंग को संतुलित बना सकते हैं। हम कह सकते हैं, s संतुलित है जब ऐसा कोई इंडेक्स जोड़ी (i,j) नहीं है जैसे कि i < j और s[i] = 't' और s[j] = 's'। हमें s को संतुलित बनाने के लिए आवश्यक न्यूनतम डिलीशन की संख्या ढूंढनी है।

उदाहरण के लिए, यदि इनपुट है s = "sststtst", तो आउटपुट 2 होगा क्योंकि हम या तो, इंडेक्स 2 और 6 पर वर्ण हटा सकते हैं ("sststtst" से "sssttt"), या इंडेक्स 3 और 6 पर वर्ण हटा सकते हैं ("sststtst" से "sstttt")।

समाधान के चरण

  1. cum_b := 0
  2. count_a := s.count("s")
  3. ans := infinity
  4. s में प्रत्येक x के लिए:
    • यदि x == "s":
      • count_a := count_a - 1
      • ans := min(ans, cum_b + count_a)
    • अन्यथा:
      • cum_b := cum_b + 1
      • ans := min(ans, cum_b-1 + count_a)
  5. ans वापस करें

उदाहरण

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

def solve(s):
    cum_b = 0
    count_a = s.count("s")
    ans = float("inf")
    for x in s:
        if x == "s":
            count_a -= 1
            ans = min(ans, cum_b + count_a)
        else:
            cum_b += 1
            ans = min(ans, cum_b-1 + count_a)
    return ans

s = "sststtst"
print(solve(s))

इनपुट

"sststtst"

आउटपुट

2
  1. - पायथन में उन स्ट्रिंग्स की संख्या खोजें जहां 'a' 'a' या 'b' हो सकता है, और 'b' 'b' ही रहता है

    मान लीजिए हमारे पास केवल a और b वाली एक स्ट्रिंग s है। a a रह सकते हैं या b में बदल सकते हैं, लेकिन b को बदला नहीं जा सकता। हमें उन अद्वितीय स्ट्रिंग्स की संख्या ढूंढनी है जो हम बना सकते हैं। उदाहरण के लिए, यदि इनपुट है s = baab, तो आउटपुट होगा 4, क्योंकि हम ये स्ट्रिंग्स बना सकते हैं: [baab, babb,

  1. - पायथन में एक स्ट्रिंग को दूसरी स्ट्रिंग का सबस्ट्रिंग बनाने के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या खोजने का प्रोग्राम

    मान लीजिए हमारे पास दो स्ट्रिंग्स s और t हैं, हमें s के लिए आवश्यक न्यूनतम संक्रियाओं की मात्रा ढूंढनी है ताकि t, s का सबस्ट्रिंग बन जाए। अब, प्रत्येक संक्रिया में, हम s में किसी भी स्थिति को चुन सकते हैं और उस स्थिति के वर्ण को किसी अन्य वर्ण में बदल सकते हैं। उदाहरण के लिए, यदि इनपुट है s = abbpq

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

    एक यूजर इनपुट स्ट्रिंग और पोजिशन दी गई है, उस पोजिशन से हमें स्ट्रिंग की लंबाई तक अल्फाबेटिकल ऑर्डर में कैरेक्टर्स को मिरर करना है। इस ऑपरेशन में, हम a को z में, b को y में, c को x में, d को w में बदलते हैं और इसी तरह, यानी पहला कैरेक्टर लास्ट बन जाता है और इसी तरह।Input: p = 3 Input string = python