按流程图填空问题

zlq4863947 2013-05-20 09:06:10
阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。
【说明】
下面的流程图可在正文字符串T(1:L)中计算关键词字符串K(1:m)出现的次数(用n表示)。其中,L为字符串T的长度,m为字符串K的长度(m<L)。为便于模糊查找,关键词中的字符“?”可以匹配任意一个字符。
在该流程图中,先从T中取出长度为m的子串存入A中,再将A与K进行逐个字符的比较(其中,K可以包含字符“?”)。注意:从正文字符串中取出的关键词字符串不允许交叉。例如,“aaaaaa”中有3个关键词字符串“aa”。


各位大侠求解。。。。
...全文
262 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hugett 2013-05-21
  • 打赏
  • 举报
回复
引用 4 楼 zlq4863947 的回复:
谢谢你的解答,不过我对第2个空还是有点疑问。。。。 我的理解是:这段的意思是从T中取M长度的字符串,然后这个长度就应该是(i:i+m) 再-1我就有点不能理解了 假设i为1是,这个i+m-1是成立的。 但当i为2,那么i+m-1就等于m+1,就变成从T中取出M+1的长度,而不是m长度的字符串了 所以我觉得第2个空应该填i+m才对吧
是取从i开始的长度为m的字符串。。i=2的话。。就是取2到m+1这m个字符。。
zlq4863947 2013-05-21
  • 打赏
  • 举报
回复
谢谢你的解答,不过我对第2个空还是有点疑问。。。。 我的理解是:这段的意思是从T中取M长度的字符串,然后这个长度就应该是(i:i+m) 再-1我就有点不能理解了 假设i为1是,这个i+m-1是成立的。 但当i为2,那么i+m-1就等于m+1,就变成从T中取出M+1的长度,而不是m长度的字符串了 所以我觉得第2个空应该填i+m才对吧
hugett 2013-05-21
  • 打赏
  • 举报
回复
引用 2 楼 zlq4863947 的回复:
除了第1个空其它都对了,第1个空应为L-m+1 求解题步骤或者解题思想。。。
呃,对。。第一个是L-m+1。。就是保证以i为起点后边有长度为m的字符串 (2)就是把T中从i开始的长度为m的字符串i到i+m-1复制到一个长度为m的字符串A。。然后后边用A与K作比较。。 (3)就是A与K比较的过程。。++j (4)就是当j>m的时候,意味着A与K完全一致。。即找到了一个匹配串。。所以计数n加一。。 (5)就是A与K的比较过程。。要么A与K的对应位相等。。要么K的相应位为?
zlq4863947 2013-05-21
  • 打赏
  • 举报
回复
谢谢你的回答 我懂了 不过感觉还是理解的很抽象,有没有比较取巧的记忆方法?
zlq4863947 2013-05-21
  • 打赏
  • 举报
回复
除了第1个空其它都对了,第1个空应为L-m+1 求解题步骤或者解题思想。。。
hugett 2013-05-21
  • 打赏
  • 举报
回复

(1)  L
(2)  i + m - 1
(3)  j + 1
(4)  n + 1
(5)  A(j) == K(j)

70,028

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧