第三章实践报告

实践题目:设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,可能复杂度的问题

 

对于上次的上机心得,我觉得现在有点不太好,因为有的时候打得比较慢的同学只能按照同伴的去讲,但是可能也没有什么太大的影响吧,这次的段错误再回去改一改。

 

posted @ 2019-10-20 20:36  更欣  阅读(148)  评论(0编辑  收藏  举报