通过从第一个或最后一个删除并重新插入Python来确定目标的程序

假设我们有两个字符串S和T,它们是彼此置换。假设有一个操作,其中我们删除了S中的第一个或最后一个字符,并将其插入字符串中的任何位置。然后找到将S转换为T所需的最少操作数。

因此,如果输入类似于s =“ zyvxw” t =“ vwxyz”,则输出将为3,因为这些操作是:删除“ w”并将其插入“ v”之后以获取“ zyvwx”删除“ z”并将其插入“ x”后得到“ yvwxz”删除“ y”并将其插入“ x”后得到“ vwxyz”。

为了解决这个问题,我们将遵循以下步骤-

  • ans:= s的大小,n:= s的大小

  • 对于范围在0到n-1之间的i

    • 对于k到k到t大小的范围,做

    • k:= k + 1

    • ans:= ans和n的最小值-(j-i + 1)

    • 从循环中出来

    • 如果s [j]与t [k]相同,则

    • k:= 0

    • 对于范围i至n-1的j,执行

    • 返回ans

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

    示例

    class Solution:
       def solve(self, s, t):
          ans = n = len(s)
    
          for i in range(n):
             k = 0
             for j in range(i, n):
                for k in range(k, len(t)):
                   if s[j] == t[k]:
                      ans = min(ans, n - (j - i + 1))
                      break
                k += 1
    
          return ans
    
    ob = Solution()s = "zyvxw"
    t = "vwxyz"
    print(ob.solve(s, t))

    输入值

    "zyvxw", "vwxyz"

    输出结果

    5
    猜你喜欢