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

पायथन में दो बार एक ही स्ट्रिंग के संयोजन के रूप में स्ट्रिंग बनाने के लिए आवश्यक संचालन की संख्या की गणना करने के लिए कार्यक्रम

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

इसलिए, यदि इनपुट s ="pqrxqsr" जैसा है, तो आउटपुट 2 होगा, क्योंकि, हम "x" को "p" से अपडेट कर सकते हैं और "s" को हटा सकते हैं, तो s "pqrpqr" है, यह s =है t, t ="pqr" के लिए, t को संयोजित करें।

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

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

उदाहरण

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

def solve(s):
   def edit_distance(s1, s2):
      m, n = len(s1), len(s2)
      cur = list(range(n + 1))
      for i in range(m):
         prev, cur = cur, [i + 1] + [0] * n
         for j in range(n):
            cur[j + 1] = (prev[j]
            if s1[i] == s2[j] else min(cur[j], prev[j], prev[j + 1]) + 1)
         return cur[n]

   res = len(s)
   for i in range(len(s)):
      res = min(edit_distance(s[:i], s[i:]), res)
   return res

s = "pqrxqsr"
print(solve(s))

इनपुट

"pqrxqsr"

आउटपुट

None

  1. पायथन में सभी कोशिकाओं को एक ही रंग में आवश्यक संचालन की संख्या की गणना करने का कार्यक्रम

    मान लीजिए कि हमारे पास दो-आयामी मैट्रिक्स एम है। अब प्रत्येक सेल में एक मान होता है जो उसके रंग का प्रतिनिधित्व करता है, और एक ही रंग के साथ आसन्न कोशिकाओं (ऊपर, नीचे, बाएं, दाएं) को एक साथ समूहीकृत किया जाना है। अब, एक ऑपरेशन पर विचार करें जहां हम सभी कोशिकाओं को एक समूह में किसी रंग में सेट करते ह

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

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

  1. किसी दिए गए स्ट्रिंग में सेट का उपयोग करके स्वरों की संख्या गिनने के लिए पायथन प्रोग्राम

    इस कार्यक्रम में, एक उपयोगकर्ता इनपुट स्ट्रिंग दिया गया। हमें इस स्ट्रिंग में स्वरों की संख्या गिननी है। यहां हम पायथन में सेट का उपयोग करते हैं। सेट एक अनियंत्रित संग्रह डेटा प्रकार है जो चलने योग्य, परिवर्तनशील और कोई डुप्लिकेट तत्व नहीं है। उदाहरण Input str1=pythonprogram Output 3 एल्गोरिदम Step