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

पायथन में हटाए गए अंकों के न्यूनतम अंकों का योग खोजने का कार्यक्रम

मान लीजिए कि हमारे पास दो स्ट्रिंग्स s और t अंकों के हैं, हमें स्ट्रिंग्स में अंकों को हटाने का एक तरीका खोजना होगा ताकि:1. दो स्ट्रिंग समान हों 2. हटाए गए अंकों का योग कम से कम हो, अंत में न्यूनतम योग वापस करें।

इसलिए, यदि इनपुट s ="41272" t ="172" जैसा है, तो आउटपुट 6 होगा, क्योंकि हम "172" प्राप्त करने के लिए पहली स्ट्रिंग से "4" और "2" को हटा सकते हैं।

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

  • एक फ़ंक्शन को परिभाषित करें lcs() । इसमें a, b, m, n

    . लगेगा
  • तालिका:=आकार का एक 2d मैट्रिक्स (n + 1) x (m + 1) और 0 से भरें

  • मैं के लिए 1 से मी की सीमा में, करो

    • j के लिए 1 से n की सीमा में, करें

      • अगर a[i - 1], b[j-1] के समान है, तो

        • तालिका[i, j] :=तालिका[i-1, j-1] + 2 *(ASCII of a[i - 1] - 48)

      • अन्यथा,

        • तालिका [i, j] =अधिकतम तालिका [i - 1, j] और तालिका [i, j - 1])

  • वापसी तालिका [एम, एन]

  • मुख्य विधि से निम्न कार्य करें

  • एम:=ए का आकार, एन:=बी का आकार

  • सी :=0

  • मेरे लिए 0 से मी की सीमा में, करें

    • c :=c + ASCII of a[i] - 48

  • मेरे लिए 0 से n की सीमा में, करें

    • c :=c + ASCII का b[i] - 48

  • परिणाम:=c - lcs(a, b, m, n)

  • वापसी परिणाम

उदाहरण (पायथन)

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

class Solution:
   def lcs(self, a, b, m, n):
      table = [[0 for i in range(n + 1)] for j in range(m + 1)]
      for i in range(1, m + 1):
         for j in range(1, n + 1):
            if a[i - 1] == b[j - 1]:
               table[i][j] = table[i - 1][j - 1] + 2 * (ord(a[i - 1]) - 48)
            else:
               table[i][j] = max(table[i - 1][j], table[i][j - 1])
      return table[m][n]
   def solve(self, a, b):
      m = len(a)
      n = len(b)
      c = 0
      for i in range(m):
         c += ord(a[i]) - 48
      for i in range(n):
         c += ord(b[i]) - 48
      result = c - self.lcs(a, b, m, n)
      return result
ob = Solution()
s = "41272"
t = "172"
print(ob.solve(s, t))

इनपुट

"41272", "172"

आउटपुट

6

  1. एक सूची का संचयी योग खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें संचयी राशि के साथ एक सूची बनानी होगी। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # cumulative sum def Cumulative(l):    new = []    cumsum = 0   &nb

  1. सरणी का योग खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक इनपुट के रूप में एक सरणी को देखते हुए, हमें दिए गए सरणी के योग की गणना करने की आवश्यकता है। यहां हम ब्रूट-फोर्स अप्रोच का अनुसरण कर सकते हैं, यानी एक सूची को पार करना और प्रत्येक तत्व को एक खा

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

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