程序是把2个字符串中的1个(我用下行txt2)从左到右逐个判断“留”或“去”,从而最终求得“最长公共子序列”的。而要求得“最长公共子串”,解题的思路是:★在每个公共子串结束时,测量该公共子串的长度,将其与储存的“最大值”比较……这是最常用的求最大值的方法,这里不赘述了,可以看代码。关键是,什么叫做“公共子串结束时”?
为此,设置1个Boolean 数据类型的变量:Righ,用以记录“上一个字符的判断结果”(也就是当前的★状态):如果它是“留下”的(①或③1),就记录 Righ = True 状态,(当然同时要累加公共子串的字数);如果它是“不留”的(②或③2),就记录 Righ = F...