程序在Python中查找已删除数字的最小数字总和

假设我们有两个数字的字符串s和t,我们必须找到一种方法来删除字符串中的数字,以便:1.两个字符串相同2.最小化被删除的数字之和最后返回最小化的和。

因此,如果输入像s =“ 41272” t =“ 172”,则输出将为6,因为我们可以从第一个字符串中删除“ 4”和“ 2”,以获得“ 172”。

范例(Python)

让我们看下面的实现以更好地理解-

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

以上是 程序在Python中查找已删除数字的最小数字总和 的全部内容, 来源链接: utcz.com/z/326305.html

回到顶部