第三章实践报告
实践题目:设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。 将字符串A变换为字符串B所用的最少字符操作数称为字符串A到 B的编辑距离,记为d(A,B)。 对于给定的字符串A和字符串B,计算其编辑距离 d(A,B)。
实践算法:
for(int i = 1;i<=m;i++)
{
d[i][0] = i;//赋初值
}
for(int j = 1;j<=n;j++)
{
d[0][j] = j;//赋初值
}
//第一行第一列填满
for(int i = 1;i<=m;i++)
{
for(int j = 1;j<=n;j++)
{
if(a[i-1]==b[j-1])
d[i][j] = d[i-1][j-1];//保存旧的d[i-1][j-1]
else d[i][j] = min(min(d[i-1][j-1],d[i-1][j]),d[i][j-1])+1;
}
}
要把旧的保存起来
实践结果:上传上去的时候最后那里出现了段错误,emm,可能复杂度的问题
对于上次的上机心得,我觉得现在有点不太好,因为有的时候打得比较慢的同学只能按照同伴的去讲,但是可能也没有什么太大的影响吧,这次的段错误再回去改一改。