题目描述
给定两个字符串,已知可以使用三种方式进行变换
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 不需要特殊处