c++求编辑距离

题目描述

给定两个字符串,已知可以使用三种方式进行变换
1. 插入一个字符
2. 删除一个字符
3. 更改一个字符
请设计一个算法,找到两个字符串之间的经历几次最小变换,可以字符串1转换成字符串2

输入描述:

输入两个字符串,字符串的长度<=1000

输出描述:

最小变换次数

示例1

输入

hello
helle

输出

1

写在前面,好久没有直接些main函数了,string也不怎么会用了,这道题目标注的是简单,但是因为之前没有了解过编辑距离,看到这个题目的时候是真的一脸懵逼。

主要解题思路为:

 

 对就是这个公式,我对这个公式的理解为:

1.对于其中一个字符串为空的情况,需要的编辑次数为非空字符串的长度

2.对于其他情况有:(1)根据字符串2中的字符删除字符串1中的字符

                                (2)根据字符串2中的字符在字符串1中新增一个字符

                                (3)根据字符串2中的字符替换字符串1中的一个字符

对于三个中的操作引发的后续问题,则统计出总体操作最少的一个

注意代码中的两层循环时从1开始的,从而使得i-1 和j -1 不需要特殊处

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值