#刷题交流# 第19天:最少前缀操作问题
暴力枚举前缀长度:
○ 我们首先考虑 T 的所有可能前缀,从长度为 0 到 min(len(S), len(T))。对于每个可能的前缀长度 i,我们取出 S 的前 i 个字符组成 cur_s。
○ 计算将 S 变为长度为 i 的 T 的前缀所需的操作次数。操作次数初始化为将 S 截断到长度 i 所需删除末尾字符的次数,即 len(S) - i。
○ 然后,我们逐个比较 cur_s 和 T 的前 i 个字符,如果字符不相同,则需要一次修改操作,将操作次数加 1。
○ 最后,我们更新全局的最少操作次数 min_op。

核心代码:
# 枚举T的可能前缀长度
for i in range(min(m, n) + 1):
cur_s = S[:i]
op_count = len(S) - i
# 计算当前前缀下的操作次数
for j in range(len(cur_s)):
if cur_s[j]!= T[j]:
op_count += 1
# 更新最少操作次数
min_op = min(min_op, op_count)

加油⛽️加油🌟,19天了。
展开
评论