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

पायथन में स्ट्रिंग स्ट्रिंग्स बनाने के लिए न्यूनतम विलोपन खोजने का कार्यक्रम

मान लीजिए कि हमारे पास दो लोअरकेस स्ट्रिंग्स s और t हैं, अब एक ऑपरेशन पर विचार करें जहां हम इन दोनों स्ट्रिंग्स में से किसी भी कैरेक्टर को हटा सकते हैं। हमें s और t को समान बनाने के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या ज्ञात करनी होगी।

इसलिए, यदि इनपुट s ="पाइप" t ="पका हुआ" जैसा है, तो आउटपुट 2 होगा, क्योंकि हम इन स्ट्रिंग्स को समान "ipe" बनाने के लिए s से "p" और t से "r" को हटा सकते हैं। पी>

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

  • m :=s का आकार
  • n :=t का आकार
  • एक फ़ंक्शन को परिभाषित करें dp() । यह ले जाएगा मैं, जे
  • यदि i, m के समान है, तो
    • वापसी n - j
  • अन्यथा जब j, n के समान हो, तब
    • वापसी एम - मैं
  • अन्यथा,
    • यदि s[i] t[j] के समान है, तो
      • रिटर्न डीपी(i + 1, j + 1)
    • अन्यथा,
      • रिटर्न 1 + (न्यूनतम dp(i + 1, j) और dp(i, j + 1))
  • मुख्य विधि से, वापसी dp(0, 0)

उदाहरण

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

def solve(s, t):
   m = len(s)
   n = len(t)

   def dp(i, j):
      if i == m:
         return n - j
      elif j == n:
         return m - i
      else:
         if s[i] == t[j]:
            return dp(i + 1, j + 1)
         else:
            return 1 + min(dp(i + 1, j), dp(i, j + 1))
   return dp(0, 0)

s = "pipe"
t = "ripe"
print(solve(s, t))

इनपुट

"pipe", "ripe"

आउटपुट

2

  1. पायथन में ए को बी से पहले बनाने के लिए हटाए जाने वाले वर्णों की न्यूनतम संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक स्ट्रिंग है जिसमें केवल दो अक्षर ए और बी हैं, हमें बीएस की सभी घटनाओं से पहले की सभी घटनाओं को प्राप्त करने के लिए एस से हटाए जाने वाले अक्षरों की न्यूनतम संख्या ढूंढनी होगी। इसलिए, यदि इनपुट S =AABAABB जैसा है, तो आउटपुट 1 होगा, क्योंकि हम AABBB प्राप्त करने के लिए अंतिम

  1. पायथन में सूची को संतुलित करने के लिए दो छोरों से आवश्यक न्यूनतम संख्या में विलोपन खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास 0s और 1s वाली एक सूची है, हमें सूची के आगे या पीछे से मानों को हटाना होगा। अंत में, हमें आवश्यक न्यूनतम संख्या में विलोपन की आवश्यकता है ताकि शेष सूची में 0 और 1 की समान संख्या हो। इसलिए, यदि इनपुट nums =[1, 1, 1, 0, 0, 1] जैसा है, तो आउटपुट 2 होगा, क्योंकि हम पहले वाले 1 और

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

    मान लीजिए कि हमारे पास एक नंबर स्टार्ट है और दूसरा नंबर एंड (स्टार्ट <एंड) है, हमें इन ऑपरेशंस का उपयोग करके स्टार्ट टू एंड को कन्वर्ट करने के लिए आवश्यक ऑपरेशंस की न्यूनतम संख्या ज्ञात करनी होगी - 1 से वृद्धि 2 से गुणा करें इसलिए, यदि इनपुट प्रारंभ =5, अंत =11 जैसा है, तो आउटपुट 2 होगा, क्योंकि