题目内容:
阅读下列说明和 C 代码,回答问题 1 至问题 3 ,将解答写在对应栏内。【说明】计算两个字符串 x 和 y 的最长公共子串( Longest Common Substring )。假设字符串 x 和字符串 y 的长度分别为 m 和 n ,用数组 c 的元素 c[i][j] 记录 x 中前 i 个字符和 y 中前 j 个字符的最长公共子串的长度。 c[i][j]满足最优子结构,其递归定义为:
计算所有 c[i][j](0 ≤ i ≤ m , 0 ≤ j ≤ n) 的值,值最大的 c[i][j] 即为字符串 x 和 y 的最长公共子串的长度。根据该长度即 i 和 j ,确定一个最长公共子串。 【 C代码】 (1) 常量和变量说明x , y :长度分别为 m 和 n 的字符串c[i][j] :记录 x 中前 i 个字符和 y 中前 j 个字符的最长公共子串的长度max : x 和 y 的最长公共子串的长度maxi, maXj :分别表示 x 和 y 的某个最长公共子串的最后一个字符在 x 和 y 中的位置(序号) (2)C 程序 #include
答案解析: