题目详情

阅读下列说明和 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

正确答案及解析

正确答案
解析

【问题1】(1)x[i-1]= =y[j-1](2)max=c[i][j](3)c[i][j]=0 (4)i=maxi-max【问题2】(动态规划、 O(m×n)或O(mn)【问题3】AB根据题干和C代码,计算出下表值。

中级软件设计师,章节练习,基础复习,中级软件设计师算法

最大值为2。在计算过程中,我们记录第一个最大值,即表中阴影部分元素,因此得到最长公共子串为AB。

你可能感兴趣的试题

单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.P(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S1)P(S2)和V(S3)
  • B.P(S1)V(S2)和V(S3)
  • C.V(S1)V(S2)和V(S3)
  • D.P(S1)P(S2)和V(S3)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S4)和V(S4)V(S5)
  • B.V(S5)和P(S4)P(S5)
  • C.V(S3)和V(S4)V(S5)
  • D.P(S3)和P(S4)V(P5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S3)和V(S4)V(S5)
  • B.V(S3)和P(S4)P(S5)
  • C.P(S3)和P(S4)P(S5)
  • D.V(S3)和V(S4)V(S5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.V(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案

相关题库更多 +