一个算法问题

Course2009 2009-05-01 05:08:37
问题描述:对于长度相同的二个字符串A和B,其距离定义为相应位置字符距离之和,两个非空格字符的距离是它们的ascii码之差的绝对值。空格与空格的距离为0,空格与其他字符的距离为一定值k.
在一般情况下字符串ab 的长度不一定相同。字符串a的扩展是在A中插入若干空格字符所产生的字符串。在字符串A和B的所有长度相同的扩展中,有一对距离最小的扩展,该距离称为字符串A和B的扩展距离
对于给定的字符串A和B,试设计一个算法,计算其扩展距离
...全文
84 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lufy_king 2009-05-04
  • 打赏
  • 举报
回复
实际上,就是若干个空格放在字符串AB不同的位置中,计算两个字符串的距离值。

隐藏条件:插入的空格数目是存在最大值的,具体多少没有去想,反正strlen(strA)*strlen(strB)是够大了。


int iMAX_NUM = strlen(strA)*strlen(strB);
int iRst = -1;
for (int i = 0 ; i<iMAX_NUM ; i++) //插入的空格数
{
for(int j = 0 ; j < i; j++) //扩展字符串
{
int iStrAPrePos = 0; //前一个空格所放的位置。

//扩展A字符串,指定空格的位置
for(int k=j;k<strlen(strA);k++)
{
//使用iStrAPrePos记录下当前空格的位置
}

//...//扩展B字符串,指定从0到i个空格的位置

int iDes = StrDes(strA,strB);
if(iDes < iRst) {Report();}//记录空格的分布情况。
}
}

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧