计算在 Python 中将字符串作为同一字符串连接两次所需的操作数的程序
假设我们有一个小写字符串s。现在考虑一个操作,我们可以删除、插入或更新s中的任何字符。我们必须计算为任何字符串t生成s=(tconcatenatet)所需的最少操作次数。
所以,如果输入像s="pqrxqsr",那么输出将是2,因为,我们可以用"p"更新"x"并删除"s",那么s是"pqrpqr",这是s=t连接t,因为t="pqr"。
示例
让我们看看以下实现以获得更好的理解-
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