- 8
- 0
- 约 8页
- 2017-06-12 发布于北京
- 举报
求解所有最长公共子序列
问题分析
该部分思路同课件
算法设计思路
根据问题分析的结果,具体的算法设计思路如下:
申明两个数组,用于保存比较的两个字符串;由于事先不知字符串大小,故动态的实现,这里用C++的容器。
申明全局变量,二维数组B和数组C。数组C用于保存计算Xi和Yi的LCS值;数组B保存当前的C是从哪个子问题得来的。为此,定义一个枚举类型,用于标识不同的方向,分别为对角线、向上、向左和向左向上四个方向。
根据动态规划,实现一个函数LCS_LENGTH,完成的功能是计算数组B和C。具体过程是:先是动态申请二维数组B和C,他们的行列长度都增加1,目的就是方便计算。将C的第0行和第0列都赋上0,即初始化。开始计算C[i][j],以行为主,一次计算C的每一个元素,即将两个数组逐一比较。比较时就有两种情况,分别是若相等时,就将C[i][j]设置成C[i-1][j-1],同时将B[i][j]设置成DIAGONAL。若不相等时,比较C[i-1][j] 和 C[i][j-1]的值,又有三种情况:一是C[i-1][j] 与 C[i][j-1]相等, 就随便把某一个赋给C[i][j],比如 C[i-1][j],B[i][j]设置为UP_LEFT;二是若C[i-1][j] 大于 C[i][j-1],则将C[i-1][j]赋给C[i][j],并且将B[i][j]设置成UP;最后是若C[i-1][j
您可能关注的文档
最近下载
- 2026年版-心力衰竭诊断和治疗指南解读与总结2026-新版课件.pptx
- 武汉市2026届高三年级四月供题(武汉四调)数学+答案.docx
- 森林疗愈培训课件.pptx VIP
- 云南省楚雄彝族自治州2024-2025学年五年级下册期末考试语文试卷(有答案).pdf VIP
- CN112457205A 一种从麻黄草中提取麻黄碱的方法 (北京亚东生物制药有限公司).pdf VIP
- 低血糖症护理常规 (2).pptx VIP
- REX温控器_-_REX-C700_实用文档.doc VIP
- 2026中国南方电网校园(土木类)训练题及答案.docx VIP
- 疗愈时光音乐.pptx VIP
- 北京市东城区2025-2026学年高二上学期期末考试政治试卷含答案.docx
原创力文档

文档评论(0)