通过从第一个或最后一个删除并重新插入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