题目详情

阅读下列说明和C代码,回答问题1至问题3,将解答写在对应栏内【说明】模式匹配是指给定主串t和子串s,在主串t中寻找子串s过程,其中s称为模式。如果匹配成功,返回s在t中位置,否则返回-1 。 KMP算法用next数组对匹配过程进行了优化。KMP算法伪代码描述如下: 1.在串t和串s中,分别设比较起始下标i=j=0。2.如果串t和串s都还有字符,则循环执行下列操作:(1)如果j=-l或者t[i]=s[j],则将i和j分别加1,继续比较t和s下一个字符;2)否则,将j向右滑动到next[j]位置,即j =next[j]。 3.如果s中所有字符均已比较完毕,则返回匹配起始位置(从1开始);否则返回-1.其中,next数组根据子串s求解。求解next数组代码已由get_next函数给出。

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

正确答案及解析

正确答案
解析

【问题1】(1):j大于ls; (2):t[i]==s[j]; (3):get_next(next, s, ls); j=next[j]; (4):i+1-ls;【问题2】(5)O(ls+lt)【问题3】(6)[-1, -1,1, -1, -1, 2, 0, 0](7)6

你可能感兴趣的试题

单选题

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

  • 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)
查看答案

相关题库更多 +